Руководство по 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.
В следующей статье мы рассмотрим, как получить определённое число первых записей из таблицы.