Как уже говорилось, лучше использовать подготовленные высказывания. Можно утверждать, что хранимая процедура заставляет выполнять ключевые запросы, чтобы принудительно использовать подготовку вызова.
В любом случае, вот простой grep для определения классического n = n целого числа в выражениях where; он пропускает пометку 1 = 1, используемую многими ленивыми конструкторами запросов для AND, но помечает ее для OR
((WHERE|OR)[ ]+[\(]*[ ]*([\(]*[0-9]+[\)]*)[ ]*=[ ]*[\)]*[ ]*\3)|AND[ ]+[\(]*[ ]*([\(]*1[0-9]+|[2-9][0-9]*[\)]*)[ ]*[\(]*[ ]*=[ ]*[\)]*[ ]*\4
Конечно, его можно улучшить, чтобы обнаруживать десятичные и строковые сравнения, но это был механизм быстрого обнаружения, наряду с другими greps, такими как ORD (MID (и т. Д.)
Используйте его в журнале запросов, например в общем журнале mysql
Надеюсь, что это полезно