Как использовать like в sql
Перейти к содержимому

Как использовать like в sql

  • автор:

Руководство по SQL. Предикат LIKE.

Для сравнения символьных строк на схожесть с определённым шаблоном в языке структурированных запросов SQL используется предикат LIKE. Существует два вида шаблонов, которые используются вместе с LIKE:

  • Символ процента – ‘%’
  • Символ подчеркивания – ‘_’

Символ процента обозначает один или несколько символов, а знак подчёркивания – одно число, или символ. Мы можем использовать символы в различных комбинациях.

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

 SELECT FROM имя талицы WHERE имя_колонки LIKE '%XXXX' или SELECT FROM имя талицы WHERE имя_колонки LIKE '%XXXX%' или SELECT FROM имя талицы WHERE имя_колонки LIKE'_XXXX' 

В данном примере ХХХХ представлены символьными строками.
Мы также можем использовать операторы AND/OR для комбинирования нескольких условий.

Предположим, что у нас есть таблица developers, которая содержит следующие записи:

 +----+-------------------+------------+------------+--------+ | ID | NAME | SPECIALTY | EXPERIENCE | SALARY | +----+-------------------+------------+------------+--------+ | 1 | Eugene Suleimanov | Java | 2 | 2500 | | 2 | Peter Romanenko | Java | 3 | 3500 | | 3 | Andrei Komarov | JavaScript | 3 | 2500 | | 4 | Konstantin Geiko | C# | 2 | 2000 | | 5 | Asya Suleimanova | UI/UX | 2 | 1800 | +----+-------------------+------------+------------+--------+ 

Допустим, что нам необходимо получить всех разработчиков, которые содержат в специальности последовательность символов ‘java’.
Для этого нам необходимо использовать следующую команду:

 mysql> SELECT * FROM developers WHERE SPECIALTY LIKE '%java%'; 

В результате выполнения данного запроса мы получим следующий результат:

 +----+-------------------+------------+------------+--------+ | ID | NAME | SPECIALTY | EXPERIENCE | SALARY | +----+-------------------+------------+------------+--------+ | 1 | Eugene Suleimanov | Java | 2 | 2500 | | 2 | Peter Romanenko | Java | 3 | 3500 | | 3 | Andrei Komarov | JavaScript | 3 | 2500 | +----+-------------------+------------+------------+--------+ 

Мы можем создавать любые шаблоны подстановки в зависимости от наших задач.

На этом мы заканчиваем изучение предиката LIKE.
В следующей статье мы рассмотрим, как получить определённое число первых записей из таблицы.

Оператор 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

SQL — Оператор LIKE

Оператор LIKE используется в предложении WHERE для поиска заданного шаблона в столбце.

В сочетании с оператором LIKE используются два подстановочных знака:

  • % — Знак процента представляет нулевой, один или несколько символов
  • _ — Подчеркнутый символ представляет собой один символ
SELECT column1, column2, . FROM table_name WHERE columnN LIKE pattern;
Выражение Описание
WHERE name LIKE ‘text%’ Находит любые значения, начинающиеся с «text»
WHERE name LIKE ‘%text’ Находит любые значения, заканчивающиеся на «text»
WHERE name LIKE ‘%text%’ Находит любые значения, которые имеют «text» в любой позиции
WHERE name LIKE ‘_text%’ Находит любые значения, которые имеют «text» во второй позиции
WHERE name LIKE ‘text_%_%’ Находит любые значения, начинающиеся с «text» и длиной не менее 3 символов
WHERE name LIKE ‘text%data’ Находит любые значения, начинающиеся с «text» и заканчивающиеся на «data»

Примеры SQL LIKE

Следующий оператор SQL выбирает всех пользователей с именем name, начинающимся с «Т»:

Пример:

SELECT * FROM users WHERE name LIKE 'Т%';

Следующий оператор SQL выбирает всех пользователей с именем name, заканчивающимся на «м»:

Пример:

SELECT * FROM users WHERE name LIKE '%м';

Следующий оператор SQL выбирает всех пользователем с именем name, которое имеет «text» в любой позиции:

Пример:

SELECT * FROM users WHERE name LIKE '%text%';

Следующий оператор SQL выбирает всех пользователей с именем name, которое имеет «text» во второй позиции:

Пример:

SELECT * FROM users WHERE name LIKE '_text%';

Следующий оператор SQL выбирает всех пользователей с именем name, начинающимся с «Т» и длиной не менее 3 символов:

Пример:

SELECT * FROM users WHERE name LIKE 'Т_%_%';

Следующий оператор SQL выбирает всех пользователей с именем name, которое начинается с «Т» и заканчивается на «м»:

Пример:

SELECT * FROM users WHERE name LIKE 'Т%м';

Следующий оператор SQL выбирает всех пользователей с именем name, которое НЕ начинается с «Т»:

Пример:

SELECT * FROM users WHERE name NOT LIKE 'Т%';

SQL условие LIKE

В этом учебном материале вы узнаете, как использовать SQL условие LIKE (для сопоставления с шаблоном) с синтаксисом и примерами.

Описание

SQL условие LIKE позволяет использовать подстановочные символы для сопоставления с шаблоном в запросе. Условие LIKE используется в предложении WHERE оператора SELECT, INSERT, UPDATE или DELETE.

Синтаксис

Синтаксис для условия LIKE в SQL.

expression LIKE pattern [ ESCAPE ‘escapecharacter’ ]

Параметры или аргумент

expression Символьное выражение, такое как поле или столбец pattern Символьное выражение, которое содержит сопоставление с шаблоном. Подстановочные символы, которые вы можете выбрать:

Символ Объяснение
% Позволяет сопоставить любую строку любой длины (включая нулевую длину)
_ Позволяет сопоставить одиночный символ

ESCAPE ‘escapecharacter’ Необязательный. Это позволяет вам сопоставлять шаблоны с литеральными подстановочными символами, такими как % или _ .

Пример — использование подстановочного символа % в условии LIKE

Давайте рассмотрим, как подстановочный символ % работает в SQL условии LIKE. Помните, что подстановочный символ % соответствует любой строке любой длины (включая нулевую длину).
В этом первом примере мы хотим найти все записи в таблице customers , где last_name клиента начинается с ‘C’.
В этом примере у нас есть таблица customers со следующими данными:

customer_id first_name last_name favorite_website
4000 Justin Bieber google.com
5000 Selena Gomez bing.com
6000 Mila Kunis yahoo.com
7000 Tom Cruise oracle.com
8000 Johnny Depp NULL
9000 Russell Crowe google.com

Введите следующий SQL оператор.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *