Общее примечание. В текущем запросе используется конкатенация строк, поэтому он подвержен внедрению SQL.Лучшим решением для вашей стороны PHP было бы использование подготовленного оператора.
При этом ваш синтаксис SQL выглядит как Postgres, а не MySQL.Вот грубый запрос:
SELECT DISTINCT Name, FileName, Status, lower(Name)
FROM yourTable
WHERE Name ~* ? OR DNA ~* ?;
Оператор ~*
в Postgres выполняет сопоставление регулярных выражений без учета регистра.Так, например, чтобы соответствовать любому Name
, который начинается с mi
, вы можете использовать:
WHERE Name ~* '^mi'
Следовательно, то, что вы должны связывать с двумя заполнителями, - это регулярные выражения.