ie:
SELECT a FROM b
SELECT a,aa,aaa FROM b
SELECT a FROM b WHERE c<>d
SELECT a,aa,aaa FROM b WHERE c==d
Here is what I came up with. (I think) It does the job, but it sure does look ugly.
Code: Select all
$pattern = '#^SELECT ([a-z]+(?:,[a-z]+)*)' //match SELECT a or SELECT a,b but not SELECT a,,,
.' FROM ([a-z0-9]+)'
.'(?:\sWHERE\s([a-z0-9_]+)\s?(==?|!=|<>|<=?|>=?)\s?([a-z0-9_]+))?$#is';
Code: Select all
$pattern = '#^SELECT (.+) FROM (.+?)(?: WHERE (.+))?$#is';