Как работают операторы SQL LIKE и NOT LIKE
Development, mySQL | Комментировать запись
Оператор SQL LIKE используется вместе с WHERE для поиска шаблона для столбца. Подстановочные знаки помогут вам определить требуемый шаблон. Два подстановочных знака, которые используются с оператором LIKE:
- %: символ процента используется для представления одного или нескольких вхождений, а также для определения их отсутствия.
- _: подчеркивание используется для представления одного символа.
Чтобы использовать оператор SQL LIKE, вы должны быть уверены в использовании позиции подстановочного знака, поскольку он будет определять шаблон поиска.
Синтаксис оператора SQL LIKE
Оператор SQL LIKE можно использовать с любым запросом вместе с where. Таким образом, мы можем использовать его с Select, Delete, Update и т. д.
SELECT column FROM table_name WHERE column LIKE pattern; UPDATE table_name SET column=value WHERE column LIKE pattern; DELETE FROM table_name WHERE column LIKE pattern;
В упомянутом выше синтаксисе оператора LIKE шаблон определяется использованием подстановочных знаков.
Примеры использования оператора SQL LIKE
Давайте попробуем понять, как работает оператор SQL LIKE вместе с подстановочными знаками, на некоторых примерах. В качестве примера рассмотрим следующую таблицу Customer.
CustomerId | CustomerName |
1 | Amit |
2 | John |
3 | Annie |
И попробуем выполнить пару практичных примеров. Допустим, мы хотим найти имя клиента, которое начинается на А:
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%';
Вывод:
Amit Annie
Найдем клиента, имя которого оканчивается на «е».
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%e'
Вывод:
Annie
Найдем теперь клиента, имя которого начинается с «А» и заканчивается на «т».
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%t'
Вывод:
Amit
Давайте найдем клиента с именем, содержащим символ «n» в любой позиции.
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%n%'
Вывод:
Annie John
Чтобы найти клиента, вторым символом в имени которого является n, введите:
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '_n%'
Вывод:
Annie
Давайте теперь найдем клиента, третьим символом в имени которого является i, а последним – t.
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '__i%t'
Вывод:
Amit
Оператор SQL NOT LIKE
Иногда мы хотим извлечь записи, которые не соответствуют определенному шаблону. В этом случае можно использовать оператор SQL NOT LIKE. Синтаксис оператора SQL NOT LIKE выглядит так:
SELECT column FROM table_name WHERE column NOT LIKE pattern; UPDATE table_name SET column=value WHERE column NOT LIKE pattern; DELETE FROM table_name WHERE column NOT LIKE pattern;
Ради примера предположим, что нам нужно извлечь список имен клиентов, которые не начинаются с буквы «А». Ниже представлен запрос, который даст нам требуемый набор результатов.
SELECT CustomerName FROM Customer WHERE CustomerName NOT LIKE 'A%';
Вывод:
John
Множественный оператор SQL LIKE
Мы можем использовать несколько операторов LIKE в одном SQL-запросе. Например, если нам нужен список имен клиентов, начинающихся с Jo и Am, нам придется использовать несколько операторов LIKE, как показано ниже.
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'Am%' OR CustomerName LIKE 'Jo%';
Читайте также: Почему стоит начать изучать SQL
Tags: SQL