Оператор 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 помогает писать более гибкие запросы и эффективно фильтровать данные.