Оператор SQL LIKE


Оператор SQL LIKE устанавливает соответствие символьной строки с шаблоном.

Оператор SQL LIKE имеет следующий синтаксис:

expression [ NOT ] LIKE pattern

где, expression — любое символьное выражение

pattern — шаблон, по которому будет происходить проверка выражения expression. Шаблон может включать в себя следующие спец. символы:

Символ Описание Примеры
% Строка любой длины Пример 1
_ Любой одиночный символ Пример 2
[] Диапазон или
последовательность символов
Пример 3
[^]  Исключающий диапазон или
последовательность символов
Пример 4

Примеры оператора SQL LIKE: Имеется следующая таблица Universities:

ID UniversityName Students Faculties Professores Location Site
1 Perm State National Research University 12400 12 1229 Perm psu.ru
2 Saint Petersburg State University 21300 24 13126 Saint-Petersburg  spbu.ru
3 Novosibirsk State University 7200 13 1527 Novosibirsk nsu.ru
4 Moscow State University 35100 39 14358 Moscow msu.ru
5 Higher School of Economics 20335 12 1615 Moscow hse.ru
6 Ural Federal University 57000 19 5640 Yekaterinburg urfu.ru
7 National Research Nuclear University 8600 10 936 Moscow mephi.ru

Пример 1. С помощью оператора SQL LIKE вывести записи университетов, имеющих в своем названии слово «State»:

SELECT * FROM Universities WHERE UniversityName LIKE '%State%'

Результат:

ID UniversityName Students Faculties Professores Location Site
1 Perm State National Research University 12400 12 1229 Perm psu.ru
2 Saint Petersburg State University 21300 24 13126 Saint-Petersburg  spbu.ru
3 Novosibirsk State University 7200 13 1527 Novosibirsk nsu.ru
4 Moscow State University 35100 39 14358 Moscow msu.ru

В этом примере, в качестве шаблона оператора SQL LIKE послужил ‘%State%’. Исходя из условия задачи, слово State может стоять в названии где угодно, поэтому оно обрамлено символом «%», обозначающим строку любой длины перед и после слова.

Пример 2. С помощью оператора SQL LIKE вывести записи университетов, доменное имя сайта которых содержит 4 символа (за исключением домена .ru):

SELECT * FROM Universities WHERE Site LIKE '____.ru'

Результат:

ID UniversityName Students Faculties Professores Location Site
2 Saint Petersburg State University 21300 24 13126 Saint-Petersburg  spbu.ru
6 Ural Federal University 57000 19 5640 Yekaterinburg urfu.ru

Пример 3. С помощью оператора SQL LIKE вывести записи университетов, первая буква доменного имени сайта которых содержит буквы из диапазона [k-o]:

SELECT * FROM Universities WHERE Site LIKE '[k-o]%'

Результат:

ID UniversityName Students Faculties Professores Location Site
3 Novosibirsk State University 7200 13 1527 Novosibirsk nsu.ru
4 Moscow State University 35100 39 14358 Moscow msu.ru
7 National Research Nuclear University 8600 10 936 Moscow mephi.ru

Пример 4. С помощью оператора SQL LIKE вывести записи университетов, вторая буква названия города которых, не входит в диапазон [e-o]:

SELECT * FROM Universities WHERE Location LIKE '_[^e-o]%'

Результат:

ID UniversityName Students Faculties Professores Location Site
2 Saint Petersburg State University 21300 24 13126 Saint-Petersburg  spbu.ru