Estoy buscando una expresión regular para dividir una lista de campos de una declaración SQL SELECT.PHP Regex para dividir una lista de campos SQL
que ya han extraído la lista de campos del resto de la consulta, por lo que me quedo con una cadena que puede parecer:
field1,field2,field3,CONCAT(field1,field2) AS concatted,IF(field1 = field2,field3,field4) AS logic
creo que el enfoque lógico sería dividir la cadena en una coma, siempre que la coma no aparezca dentro de parantheses, entonces solo necesito encontrar la expresión regular correcta para hacer eso ...?
El resultado final de lo que estoy tratando de lograr es averiguar qué campos parecen ser directamente seleccionados de la tabla, y cuáles están hechos de expresiones de SQL, para poder decidir más adelante si se deben filtrar usando DONDE o TENER cláusulas.
Una vez que tengo la lista de campos, puedo verificar la presencia de la palabra clave 'AS' que, aunque no es perfecta, debería funcionar con la forma en que escribo SQL.
(Los puntos de bonificación para sugerir otra manera de que differenciates entre los campos que no son expresiones, pero que son alias, y expresiones que pueden no tener un alias, o puede ser, pero sin utilizar 'AS')
parece hacer el trabajo a la perfección, gracias! – Codecraft