Повнотекстовий пошук MySQL / MariaDB - Оператор LIKE

Повнотекстовий пошук 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.

sql like

І в цю таблицю я додав пару рядків, на яких ми перевірятимемо як працює оператор LIKE.

sql like


 

Приклади використання оператора LIKE:

У першому прикладі ми будемо використовувати шаблон для пошуку знак відсотка (%), і шукати статті будемо ті які починаються на букву M, за яким слідує будь-яка кількість символів.

sql> SELECT title FROM inzhener.it_inzhener_like WHERE title LIKE 'M%';

sql like

Якби ми не використовували шаблон знак відсотка (%), то в результаті ми отримали б нуль записів.

sql like


 

Тепер давайте знайдемо статті, які закінчуються на літери er, і використовуватимемо той самий шаблон знак відсотка (%).

sql> SELECT title FROM inzhener.it_inzhener_like WHERE title LIKE '%er';

sql like


 

Тепер давайте перевіримо той варіант, який ви будете використовувати у своєму сайті. Ми будемо шукати статті, які містять підрядок MySQL, за яким і перед цим підрядком слід будь-яка кількість символів. Використовувати ми будемо той самий шаблон знак відсотка (%), але цей шаблон ми будемо вставляти на початок і кінець підрядка.

sql> SELECT title FROM inzhener.it_inzhener_like WHERE title LIKE '%mysql%';

sql like

Як бачимо в результаті ми отримали назву статті, які містять слово MySQL на початку рядка і в середині.

Для організації пошуку на своєму сайті цей варіант найбільш підходить ніж ті, що я показував вище.


 

Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.

 

СХОЖІ СТАТТІ

MySQL - Генерація тестових даних
MySQL - Генерація тестових даних
MYSQL
Читати далі
MySQL / MariaDB Як отримати id останнього вставленого запису в таблиці - LAST_INSERT_ID
MySQL / MariaDB Як отримати id останнього вставленого запису в таблиці - LAST_INSERT_ID
MYSQL
Читати далі
MySQL / MariaDB Як перетворити регістр символів - Функції UPPER та LOWER
MySQL / MariaDB Як перетворити регістр символів - Функції UPPER та LOWER
MYSQL
Читати далі