LIKE - данный оператор используется с условием WHERE для поиска значений по образцу.
Синтаксис SQL LIKE
Пример 1
Есть таблица "Persons":
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого начинается с буквы "s" из таблицы выше.
Для этого используем такой запрос:
"%" - данный знак является маской. Обозначает любые символы.
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Пример 2
Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого заканчивается на букву "s" из таблицы выше.
Для этого используем такой запрос:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Пример 3
Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого содержит в себе буквы "tav". Не важно, в каком месте будут находиться данные символы, в начале или конце слова.
Для этого используем такой запрос.:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Пример 4
Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого не содержит в себе буквы "tav". Используем ключевое слово NOT.
Для этого используем такой запрос.:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
SQL Like





Комментарии
SELECT *
FROM Persons
WHERE FirstName LIKE 'To_'
То результатом запроса будет значение Tom, Tos, Top но не Tove, поскольку в нем четыре символа, а вы задали в поиск значение с тремя.
dev.mysql.com/.../...
Что-то на подобие такого
SELECT * FROM doc WHERE item LIKE '%a%'+(NOT LIKE '%b%')+'%c%'
где показано что между символами 'a' и 'c' не дожно быть символа 'b' Цитировать
зачем вкладывать одно условие в другое. очевидно, что должна работать их коньюнкция:
… WHERE item LIKE %a%c% AND item NOT LIKE %a%b%c% Цитировать