Полнотекстовый поиск 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
Читать далее