Повнотекстовий пошук MySQL / MariaDB - Оператор LIKE
Колеги всім привіт.
У сьогоднішній статті ми поговоримо про те, як використовувати у своїх запитах SQL оператор LIKE у MySQL / MariaDB.
Здебільшого оператор LIKE використовується у випадку, якщо у вас на сайті організований пошук. Ще дуже важливим моментом, що оператор LIKE застосовується тільки до полів типу CHAR і VARCHAR, якщо ви будете застосовувати оператор LIKE наприклад типу INT, то результати будуть не передбачувані.
Оператор LIKE використовується в пропозиції разом з оператором WHERE для пошуку заданої підрядки в стовпці. Для більш якісного пошуку підрядка використовуються так звані шаблони. Шаблони це спеціальні символи, які можуть означати все, що завгодно. Існує лише три варіанти шаблонів. Перший шаблон це знак відсотка (%), другий знак нижнє підкреслення (_) і третій це квадратні дужки ([ ]).
Позначення шаблонів:
- ( _ ) - означає один будь-який символ.
- ( % ) - Скільки завгодно символів довільної довжини.
- ( [ ] ) - Послідовність символів. Якщо ми наприклад вкажемо символи ДК, то пошук буде виконуватися з урахуванням того, що інформація буде починатися з Д або К.
Синтаксис оператора LIKE:
SELECT column1, column2, ... FROM table_name WHERE columnN LIKE [pattern]string[pattern];
- SELECT column1, column2 - Ім'я полів, з яких ми хочемо взяти значення.
- FROM table_name - Ім'я таблиці, з якої ми хочемо взяти значення.
- WHERE columnN - Ім'я поля, за яким буде здійснюватися пошук.
- LIKE [pattern]string[pattern] - Підрядок, який ми будемо порівнювати з рядками поля columnN.
[pattern] - Не є обов'язковим до застосування.
Перевірити як працює оператор LIKE ми будемо на таблиці яку я створив під назвою it_inzhener_like і ця таблиця буде мати всього два поля, поле id та поле title.
І в цю таблицю я додав пару рядків, на яких ми перевірятимемо як працює оператор LIKE.
Приклади використання оператора LIKE:
У першому прикладі ми будемо використовувати шаблон для пошуку знак відсотка (%), і шукати статті будемо ті які починаються на букву M, за яким слідує будь-яка кількість символів.
sql> SELECT title FROM inzhener.it_inzhener_like WHERE title LIKE 'M%';
Якби ми не використовували шаблон знак відсотка (%), то в результаті ми отримали б нуль записів.
Тепер давайте знайдемо статті, які закінчуються на літери er, і використовуватимемо той самий шаблон знак відсотка (%).
sql> SELECT title FROM inzhener.it_inzhener_like WHERE title LIKE '%er';
Тепер давайте перевіримо той варіант, який ви будете використовувати у своєму сайті. Ми будемо шукати статті, які містять підрядок MySQL, за яким і перед цим підрядком слід будь-яка кількість символів. Використовувати ми будемо той самий шаблон знак відсотка (%), але цей шаблон ми будемо вставляти на початок і кінець підрядка.
sql> SELECT title FROM inzhener.it_inzhener_like WHERE title LIKE '%mysql%';
Як бачимо в результаті ми отримали назву статті, які містять слово MySQL на початку рядка і в середині.
Для організації пошуку на своєму сайті цей варіант найбільш підходить ніж ті, що я показував вище.
Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.