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