Оператор LIKE
Описание
Выражение с оператором LIKE возвращает TRUE, если текстовая строка соответствует заданному шаблону.
Если шаблон не содержит знаков процента или подчеркивания, то он интерпретируется буквально, и в этом случае LIKE действует как оператор равенства:
SELECT
'Tengri' LIKE 'Tengri' AS result;
+--------+
| result |
+--------+
| true |
+--------+
Если в шаблоне есть специальные символы, то он интерпретируется не буквально, а как регулярное выражение:
-
Подчеркивание
_в шаблоне соответствует любому отдельному символу. -
Знак процента
%в шаблоне соответствует любой последовательности из нуля или более символов.
Сопоставление шаблона LIKE всегда применяется ко всей строке. Поэтому, если требуется сопоставить последовательность в любом месте строки (накрыть шаблоном подстроку), то шаблон должен начинаться и заканчиваться знаком процента %.
Можно также использовать противоположные по значению выражения <string> NOT LIKE <pattern> и NOT string LIKE <pattern>:
SELECT
NOT 'Tengri' LIKE 'Tengri' AS result_1,
'Tengri' NOT LIKE 'Tengri' AS result_2;
+----------+----------+
| result_1 | result_2 |
+----------+----------+
| false | false |
+----------+----------+
Оператор ILIKE
Оператор ILIKE можно использовать вместо LIKE, чтобы сделать сопоставление нечувствительным к регистру:
SELECT
'Tengri' ILIKE 'tengri' AS result_1,
'Tengri' ILIKE '%NGRi' AS result_2;
+----------+----------+
| result_1 | result_2 |
+----------+----------+
| true | true |
+----------+----------+
Примеры
-
Покажем несколько примеров работы шаблонов
LIKE:SELECT 'Tengri' LIKE 'TNGRi' AS result_1, 'Tengri' LIKE 'T%' AS result_2, 'TNGRi' LIKE 'T%' AS result_3, 'Tengri' LIKE 'T_____' AS result_4;+----------+----------+----------+----------+ | result_1 | result_2 | result_3 | result_4 | +----------+----------+----------+----------+ | false | true | true | true | +----------+----------+----------+----------+ -
Выберем из таблицы столиц страны, в которых столица начинается на
M:CREATE TABLE capitals (country VARCHAR, capital VARCHAR); INSERT INTO capitals VALUES ('Russia', 'Moscow'), ('Italy', 'Rome'), ('Spain', 'Madrid'), ('France', 'Paris'); SELECT country FROM capitals WHERE capital LIKE 'M%';+---------+ | country | +---------+ | Russia | +---------+ | Spain | +---------+