Можно ли оптимизировать запрос с LIKE - MySQL
Формулировка задачи:
Вот есть такой запрос:
Можно ли как то его оптимизировать к примеру через IN?
Заранее благодарю.
SELECT * FROM TABLE WHERE Address NOT LIKE '%Москва%' AND Address NOT LIKE '%МО%' AND Address NOT LIKE '%Моско%'
Решение задачи: «Можно ли оптимизировать запрос с LIKE»
textual
Листинг программы
SELECT * FROM TABLE WHERE LOWER(Address) NOT LIKE '%моск%' AND Address NOT LIKE '%МО%'
Объяснение кода листинга программы
В данном коде выполняется запрос к таблице TABLE с условием, что поле Address не содержит в нижнем регистре слово моск и не содержит в верхнем регистре слово МО.
- SELECT * - выбираются все поля из таблицы
TABLE. - FROM TABLE - указывается название таблицы, к которой выполняется запрос.
- WHERE LOWER(Address) NOT LIKE '%моск%' AND Address NOT LIKE '%МО%' - задается условие для выборки, которое состоит из двух частей:
- LOWER(Address) NOT LIKE '%моск%' - поле
Addressв нижнем регистре не должно содержать словомоск. - Address NOT LIKE '%МО%' - поле
Addressне должно содержать в верхнем регистре словоМО.
- LOWER(Address) NOT LIKE '%моск%' - поле