Romantik
TeaM PHPClub
Парсинг SQL запроса (регулярные выражения)
Приветствую уважаемые.
Вот возникла проблема с переходом на MySQL 5, точнее с именами в таблицах.
Оптимальным решением оказалось взятие имен в обратные кавычки (`)
благо работа идет через абстракцию и править нужно только 1 метод класса
Решил все делать через explode и array_key_exists
Все хорошо, но когда пошла конструкция
парсинг оказался фактически в тупике да и количество действий и скорость показало что путь выбран не грамотный, что фактически проще регуляркой понаходить участки table1.field1 и заменить их на
`table1`.`field1`
фактически точка встречается еще только в REPLACE(field, '.00', '')
вроде правило есть но тут еще учитывать нужно простые запросы
SELECT field_name AS name FROM table, table2 AS t LEFT JOIN table AS n ...
с таким разбросом написать регулярку у меня не хватит сил и я был бы признателен за любую помощь,
потому как и скорость еще важна.
может кто подскажет проще решение или вообще скажет, что я тормоз и есть опция которая сама подставляет обратные кавычки- я был бы очень признателен.
Приветствую уважаемые.
Вот возникла проблема с переходом на MySQL 5, точнее с именами в таблицах.
Оптимальным решением оказалось взятие имен в обратные кавычки (`)
благо работа идет через абстракцию и править нужно только 1 метод класса
Решил все делать через explode и array_key_exists
Все хорошо, но когда пошла конструкция
Код:
... LEFT JOIN table1.field1=table2.field2 AND table3.field3>0 AND table4.field4!=0
`table1`.`field1`
фактически точка встречается еще только в REPLACE(field, '.00', '')
вроде правило есть но тут еще учитывать нужно простые запросы
SELECT field_name AS name FROM table, table2 AS t LEFT JOIN table AS n ...
с таким разбросом написать регулярку у меня не хватит сил и я был бы признателен за любую помощь,
потому как и скорость еще важна.
может кто подскажет проще решение или вообще скажет, что я тормоз и есть опция которая сама подставляет обратные кавычки- я был бы очень признателен.