Оператор LIKE
Оператор LIKE используется при условных запросах, когда мы хотим узнать, соответствует ли строка определённому шаблону.
Например, у нас есть таблица Users, в которой есть поле email:
SELECT name, email FROM Users;
| name | |
|---|---|
| Bruce Willis | barjam@hotmail.com |
| George Clooney | tellis@me.com |
| Kevin Costner | metzzo@hotmail.com |
| Samuel L. Jackson | moonlapse@outlook.com |
| Kurt Russell | gator@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-символ.