Site icon 8HOST.COM

Как работают операторы SQL LIKE и NOT LIKE

Оператор SQL LIKE используется вместе с WHERE для поиска шаблона для столбца. Подстановочные знаки помогут вам определить требуемый шаблон. Два подстановочных знака, которые используются с оператором LIKE:

  1. %: символ процента используется для представления одного или нескольких вхождений, а также для определения их отсутствия.
  2. _: подчеркивание используется для представления одного символа.

Чтобы использовать оператор 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