Перейти к основному содержимому

Оператор LIKE

Оператор LIKE используется при условных запросах, когда мы хотим узнать, соответствует ли строка определённому шаблону.

Например, у нас есть таблица Users, в которой есть поле email:

SELECT name, email FROM Users;
nameemail
Bruce Willisbarjam@hotmail.com
George Clooneytellis@me.com
Kevin Costnermetzzo@hotmail.com
Samuel L. Jacksonmoonlapse@outlook.com
Kurt Russellgator@live.com

Допустим, мы хотим найти всех пользователей, чья почта лежит в домене второго уровня «hotmail». Т.е. нужно отобрать только те записи, что отвечают условию:

после символа «@» следует «hotmail» после «hotmail» следует символ «.» и далее любая последовательность символов, для таких поисков по строковым полям и нужен оператор LIKE.

СимволОписание
%Последовательность любых символов (число символов в последовательности может быть от 0 и более)
_Любой единичный символ

Примеры

... WHERE поле_таблицы LIKE 'text%'

Сопоставляется любым строкам, начинающимся на «text»

... WHERE поле_таблицы LIKE '%text'

Сопоставляется любым строкам, заканчивающимся на «text»

... WHERE поле_таблицы LIKE '_ext'

Сопоставляется строкам, имеющим длину 4 символа, при этом 3 последних обязательно должны быть «ext». Например, слова «text» и «next»

... WHERE поле_таблицы LIKE 'begin%end'

Сопоставляется строкам, начинающихся на «begin» и заканчивающихся на «end»

ESCAPE-символ

ESCAPE-символ используется для экранирования специальных символов (% и _). В случае если вам нужно найти строки, содержащие эти специальные символы как обычный текст, вы можете использовать ESCAPE-символ.