Оператор LIKE MySQL на примерах SELECT и WHERE

Оператор LIKE MySQL на примерах SELECT и WHERE

В MySQL есть разные операторы для работы с данными, LIKE один из самых популярных способов выполнять поиск в строковых данных. Он используется для фильтрации записей по частичному совпадению, работе с масками и гибкому анализу строк. В этой статье мы подробно разберём синтаксис MySQL LIKE, узнаем, как работает sql like mysql, рассмотрим mysql where like, сравним LIKE и REGEXP, а также приведём массу практических примеров.

Что такое оператор LIKE в MySQL

Оператор LIKE MySQL применяется в SQL-запросах для поиска строк, соответствующих определённому шаблону. Вместе с LIKE используются два специальных символа:

  • % — заменяет любое количество символов
  • _ — заменяет ровно один символ

LIKE можно использовать практически в любом SQL-запросе, но чаще всего — в WHERE.

MySQL LIKE синтаксис

Базовый синтаксис sql запроса с оператором like:

SELECT столбец
FROM таблица
WHERE столбец LIKE 'шаблон';

В коде ‘шаблон’ заменяется на % или _ и вписывается сам шаблон поиска.

Шаблон Описание Пример результата
abc% Начинается с «abc» abc, abc123, abctest
%abc Заканчивается на «abc» 123abc, testabc
%abc% Содержит «abc» myabcfile, xabcx
a_c 3 символа, средний — «c» abc, a1c
a__d 4 символа, 2 любых между a и d a12d, a_xd

MySQL SELECT LIKE

Это один из самых частых способов использовать LIKE через WHERE чтобы выбрать строки по частичному совпадению. Выполним поиск всех товаров содержащих слово ‘phone’.

SELECT * 
FROM products
WHERE name LIKE '%phone%';

Данный запрос найдет все товары в названии которых есть искомое слово. Это будет iphone, smartphone, old phone и т.д. и т.п.

MySQL REGEXP LIKE — что лучше?

Чем отличается обычный mysql like от mysql regexp? сейчас мы рассмотрим. Все довольно просто, в зависимости от поддерживаемых данных которые вы будете передавать. Соответственно и результат фильтрации (поиска) данных будет отличаться.

LIKE
Простой.
Быстрый.
Поддерживает только % и _.
REGEXP
Мощнее.
Работает с регулярными выражениями.
Даёт больше гибкости.

Простой пример поиска для сравнения, который работает одинаково:

SELECT * FROM books WHERE title LIKE '%cat%';
SELECT * FROM books WHERE title REGEXP 'cat';

Теперь рассмотрим пример с регулярным выражением с помощью REGEXP:

SELECT *
FROM users
WHERE email REGEXP '^[a-z0-9._%+-]+@gmail\.com$';

Заключение статьи

Оператор LIKE в MySQL — простой, но мощный инструмент для поиска по строкам. Он применяется в SELECT, WHERE, MySQL JOIN и других SQL-конструкциях. LIKE идеален для обычных масок поиска, а если нужно что-то сложнее, можно использовать REGEXP. Понимание работы LIKE помогает писать более гибкие запросы и эффективно фильтровать данные.