我正在寻找一个正则表达式来从 SQL SELECT 语句中拆分字段列表。
我已经从查询的其余部分中提取了字段列表,所以我留下了一个可能看起来像这样的字符串:
field1,field2,field3,CONCAT(field1,field2) AS concatted,IF(field1 = field2,field3,field4) AS logic
我认为合乎逻辑的方法是将字符串拆分为逗号,前提是逗号没有出现在括号内,所以我只需要找到正确的正则表达式来做到这一点......?
我试图实现的最终结果是找出哪些字段似乎是从表中直接选择的,哪些字段是由 SQL 表达式组成的,以便稍后我可以决定是否使用 WHERE 或 HAVING 子句过滤它们.
获得字段列表后,我可以检查是否存在“AS”关键字,尽管它并不完美,但应该可以使用我编写 SQL 的方式。
(建议另一种方法来区分不是表达式但有别名的字段与可能没有别名的表达式,或者可能是但不使用'AS'的表达式)