Bir SQL SELECT deyiminden bir alan listesini ayırmak için normal bir ifade arıyorum. PHP Bir SQL alan listesini bölmek için Regex
Zaten sorgunun geri kalanından alan listesini çıkarılan, bu yüzden gibi görünebilir bir dize ile kaldım:field1,field2,field3,CONCAT(field1,field2) AS concatted,IF(field1 = field2,field3,field4) AS logic
Ben mantıklı bir yaklaşım üzerinde dize bölmek olacağını düşünüyorum virgül, virgül parantez içinde görünmüyordu, bu yüzden bunu yapmak için doğru düzenli ifadeyi bulmam gerekiyor ...?
Neyi başarmaya çalıştığımın sonucu, hangi alanların doğrudan tablodan seçildiğini ve hangisinin SQL ifadelerinden üretildiğini bulmaktır, böylece daha sonra bunları kullanarak filtrelenip filtrelenmeyeceğine karar verebilirim. WHERE veya HAVING cümleleri.
Alanlar listesi girdikten sonra, mükemmel olmasa da, SQL yazma biçimiyle çalışmam gereken 'AS' anahtar sözcüğünün varlığını kontrol edebilirim.
(ad verilmiş olmayabilir, ya da 'GİBİ' kullanmadan ancak olabilecek ifadeler olmayıp aliased alanlar, ifadeler arasında differenciates başka bir yol öneren Bonus puanlar) Bu regex gerekir
görünüyor, teşekkürler! – Codecraft