Что такое like в sql
Оператор LIKE используется при условных запросах, когда мы хотим узнать соответствует ли строка определённому шаблону.
Например, у нас есть таблица Users , в которой есть поле email :
MySQLSELECT name, email FROM Users;
name Bruce Willis barjam@hotmail.com George Clooney tellis@me.com Kevin Costner metzzo@hotmail.com Samuel L. Jackson moonlapse@outlook.com Kurt Russell gator@live.com Допустим, мы хотим найти всех пользователей, чья почта лежит в домене второго уровня «hotmail». Т.е. нужно отобрать только те записи, что отвечают условию:
- после символа «@» следует «hotmail»
- после «hotmail» следует символ «.» и далее любая последовательность символов
Для таких нетривиальных поисков по строковым полям и нужен оператор LIKE .
MySQL... WHERE поле_таблицы [NOT] LIKE шаблон_строкиШаблон может включать следующие специальные символы:
Символ Описание % Последовательность любых символов (число символов в последовательности может быть от 0 и более) _ Любой единичный символ Так наш запрос на поиск пользователей в домене «hotmail» может выглядеть следующим образом:
MySQLSELECT name, email FROM Users WHERE email LIKE '%@hotmail.%'
name Bruce Willis barjam@hotmail.com Kevin Costner metzzo@hotmail.com Jennifer Lopez barjam@hotmail.com Harrison Ford kostas@hotmail.com Michael Douglas timtroyr@hotmail.com Catherine Zeta-Jones flakeg@hotmail.com MySQL... WHERE поле_таблицы LIKE 'text%'MySQL... WHERE поле_таблицы LIKE '%text'MySQL... WHERE поле_таблицы LIKE '_ext'MySQL... WHERE поле_таблицы LIKE 'begin%end'В MySQL по умолчанию шаблоны не чувствительны к регистру
ESCAPE-символ используется для экранирования специальных символов ( % и \ ). В случае если вам нужно найти строки, вы можете использовать ESCAPE-символ.
Например, вы хотите получить идентификаторы задач, прогресс которых равен 3%:
MySQLSELECT job_id FROM Jobs WHERE progress LIKE '3!%' ESCAPE '!';Если бы мы не экранировали трафаретный символ, то в выборку попало бы всё, что начинается на 3.
SQL LIKE
Оператор LIKE используется в предложении WHERE для поиска указанного шаблона в столбце.
Есть два подстановочных знака, часто используемых в сочетании с оператором LIKE:
- % - Знак процента представляет собой ноль, один или несколько символов
- _ - Подчеркивание представляет собой один символ
Примечание: MS Access использует звездочку (*) вместо знака процента (%) и вопросительный знак (?) вместо подчеркивания (_).
Знак процента и подчеркивание также могут использоваться в комбинациях!
Синтаксис LIKE
SELECT column1, column2, .
FROM table_name
WHERE columnN LIKE pattern;Совет: Вы также можете комбинировать любое количество условий с помощью операторов AND или OR.
Вот несколько примеров, показывающих различные операторы LIKE с подстановочными знаками '%' и '_':
LIKE Описание WHERE CustomerName LIKE 'a%' Находит любые значения, которые начинаются с "a" WHERE CustomerName LIKE '%a' Находит любые значения, которые заканчиваются на "a" WHERE CustomerName LIKE '%or%' Находит любые значения, которые имеют "or" в любой позиции WHERE CustomerName LIKE '_r%' Находит любые значения, имеющие букву "r" во второй позиции WHERE CustomerName LIKE 'a__%' Находит любые значения, начинающиеся с буквы "a" и имеющие длину не менее 3 символов WHERE ContactName LIKE 'a%o' Находит любые значения, которые начинаются с "a" и заканчиваются "о" Демо база данных
Ниже приведен выбор из таблицы "Customers" в образце базы данных Northwind:
Примеры SQL LIKE
Следующая инструкция SQL выбирает всех клиентов с именем клиента, начинающимся с "a":
Пример
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';Следующая инструкция SQL выбирает всех клиентов с именем клиента, оканчивающимся на "a":
Пример
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют "or" в любой позиции:
Пример
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют "r" во второй позиции:
Пример
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое начинается с буквы "a" и имеет длину не менее 3 символов:
Пример
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';Следующая инструкция SQL выбирает всех клиентов с именем контакта, которое начинается с "a" и заканчивается на "o"
Пример
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое не начинается с "a":
Как работает like в sql
Думаю можно ответить так - оператор LIKE используется для сравнения значений в столбцах с шаблоном, который вы задаете. Он позволяет искать строки, которые содержат определенные символы или фразы.
Этот запрос вернет все строки из таблицы customers, в которых last_name начинается с букв "Sm".
Оператор LIKE чувствителен к регистру символов, то есть "A" и "a" будут восприниматься как разные символы. Однако, для того чтобы выполнить поиск, игнорируя регистр символов, можно использовать функцию UPPER или LOWER , например:
SQL LIKE Operator
The LIKE operator is used in a WHERE clause to search for a specified pattern in a column.
There are two wildcards often used in conjunction with the LIKE operator:
- The percent sign % represents zero, one, or multiple characters
- The underscore sign _ represents one, single character
Example
Select all customers that starts with the letter "a":
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';Syntax
SELECT column1, column2, .
FROM table_name
WHERE columnN LIKE pattern;Demo Database
Below is a selection from the Customers table used in the examples:
The _ Wildcard
The _ wildcard represents a single character.
It can be any character or number, but each _ represents one, and only one, character.
Example
Return all customers from a city that starts with 'L' followed by one wildcard character, then 'nd' and then two wildcard characters:
SELECT * FROM Customers
WHERE city LIKE 'L_nd__';The % Wildcard
The % wildcard represents any number of characters, even zero characters.
Example
Return all customers from a city that contains the letter 'L':
SELECT * FROM Customers
WHERE city LIKE '%L%';Starts With
To return records that starts with a specific letter or phrase, add the % at the end of the letter or phrase.
Example
Return all customers that starts with 'La':
SELECT * FROM Customers
WHERE CustomerName LIKE 'La%';Tip: You can also combine any number of conditions using AND or OR operators.
Example
Return all customers that starts with 'a' or starts with 'b':
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%' OR CustomerName LIKE 'b%';Ends With
To return records that ends with a specific letter or phrase, add the % at the beginning of the letter or phrase.
Example
Return all customers that ends with 'a':
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';Tip: You can also combine "starts with" and "ends with":
Example
Return all customers that starts with "b" and ends with "s":
SELECT * FROM Customers
WHERE CustomerName LIKE 'b%s';Contains
To return records that contains a specific letter or phrase, add the % both before and after the letter or phrase.
Example
Return all customers that contains the phrase 'or'
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';Combine Wildcards
Any wildcard, like % and _ , can be used in combination with other wildcards.
Example
Return all customers that starts with "a" and are at least 3 characters in length:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';Example
Return all customers that have "r" in the second position:
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';Without Wildcard
If no wildcard is specified, the phrase has to have an exact match to return a result.
Example
Return all customers from Spain:
SELECT * FROM Customers
WHERE Country LIKE 'Spain';
COLOR PICKER
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning.
Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness
of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.Предыдущая запись


