SQL Like: практическое руководство
Оператор SQL LIKE использует подстановочные знаки для поиска данных, похожих на определённый образец. Вы можете использовать подчёркивание для замены одного символа или знак процента для замены нуля, одного или нескольких символов.
Вы когда-нибудь хотели получить информацию из столбцов, которые содержат значение, похожее на другое? Например, предположим, что у вас есть таблица с именем «сотрудники». Может быть, вы хотите получить список сотрудников, название которых содержит «Продажи».
Вот где в игру вступает оператор SQL LIKE. В этой статье мы расскажем, как использовать оператор LIKE на сервере SQL для выполнения более конкретных запросов.
Содержание
- SQL LIKE
- Пример SQL LIKE
- Пример SQL NOT LIKE
- Вывод
SQL LIKE
Оператор SQL LIKE находит записи в базе данных, значения столбцов которых соответствуют определённому шаблону. Шаблоны выражаются с помощью знаков процента, подчёркивания и текста, который вы ищете.
Например, мы можем использовать LIKE, чтобы получить всех сотрудников, чьи имена заканчиваются на S или чьё название включает Associate.
Оператор LIKE использует подстановочные знаки для получения данных, соответствующих определённому шаблону. Два подстановочных знака, часто используемых с оператором LIKE, следующие:
- _ — символ подчёркивания представляет собой один символ.
- % — знак процента представляет ноль, один или несколько символов.
Вот структура запроса с использованием оператора LIKE:
SELECT column_name FROM table_name
WHERE column_name LIKE pattern;
В этом синтаксисе мы используем оператор LIKE в инструкции SQL SELECT. Вы можете использовать этот оператор в операторах INSERT, UPDATE и DELETE.
Давайте воспользуемся примером, чтобы проиллюстрировать, как работает SQL LIKE.
Пример SQL LIKE
Допустим, у нас есть таблица с информацией о сотрудниках, которые работают в компании. Мы хотим, чтобы получить имена и ветви каждого сотрудника, который работает в отрасли, чьё имя начинается с буквы S.
Для этого мы можем использовать следующий запрос:
SELECT name, branch FROM employees
WHERE branch LIKE ‘S%’;
База данных SQL-сервера возвращает:
имя | ответвляться |
Майк | Стэмфорд |
Джефф | Сан-Франциско |
Ханна | Сан-Франциско |
(3 ряда)
Знак процента после буквы S говорит наш код, который мы хотим получить все отрасли, чьё имя начинается с буквы S. Наш запрос возвращает каждое совпадение символьной строки.
Если бы мы хотели получить имена и должности каждого сотрудника, который является партнёром, включая старших сотрудников, мы могли бы использовать этот запрос:
SELECT name, title FROM employees
WHERE title LIKE ‘%Associate%’;
Наш запрос находит всех сотрудников, имена которых соответствуют шаблону «% Associate%». Запрос возвращает следующее:
имя | заглавие |
Люк | Сотрудник по продажам |
Майк | Сотрудник по продажам |
Алексис | Сотрудник по продажам |
Ханна | Сотрудник по продажам |
Джефф | Старший специалист по продажам |
Пример SQL NOT LIKE
Мы можем использовать оператор NOT LIKE, чтобы выбрать все записи, которые не соответствуют определённому условию. Оператор NOT LIKE представляет собой комбинацию операторов SQL NOT и LIKE. Оператор NOT находит записи, не соответствующие условию.
Например, мы могли бы использовать NOT LIKE, чтобы получить имена каждого сотрудника, имя которого не превышает четырёх символов. Вот SQL-запрос, который мы могли бы использовать для этой цели:
SELECT name FROM employees
WHERE name NOT LIKE ‘____’;
Наш запрос пропустит каждого сотрудника, имя которого не состоит из четырёх символов, и вернёт остальных.
Каждый подстановочный знак подчёркивания представляет один символ. Если имя состоит из более или менее четырёх символов, оно не будет отображаться в нашем наборе результатов.
Наша база данных возвращает все записи, соответствующие нашему шаблону поиска:
имя |
Алексис Ханна Джона Джефф |
(4 ряда)
Вывод
Оператор SQL LIKE позволяет использовать шаблоны для поиска записей в базе данных. Вы можете использовать эту запись для поиска похожих записей без указания точного совпадения, которое должно быть выполнено. Оператор LIKE появляется в разделе WHERE оператора SQL.
В этой статье мы обсудили, как вы можете использовать оператор LIKE SQL, чтобы сделать ваши запросы более конкретными. Мы также обсудили, как вы можете использовать оператор NOT LIKE для получения информации, не соответствующей определённым правилам.
sql — Как работает оператор Like?
Вопрос задан
Изменён 7 лет 3 месяца назад
Просмотрен 16k раз
Как работает оператор Like
?
Как его правильно использовать?
0
Сравнивает строки по маске. В маске можно использовать %
и _
— это спецсиволы. Процент — это любое кол-во символов, _
— один.
Пример.
Маске %тест%
соответствуют строки «1тест1», «простотест», «тест», но не «температура».
Маске _тест
соответствуют строки «1тест», «2тест», но не «тест» или «тест1».
В самом запросе используется так
select * from mytable where my_field like '%q';
Чтобы выбрать все строки, где поле my_field
заканчивается на q
.
1
Оператор LIKE отличается тем, что будет работать быстрее substr(), т.к. чтобы сабстр работал быстро, для него понадобится индекс. А LIKE «ищет» и работает с тем, что есть. Т.е. правильнее строить запрос так
select * from clients where name like 'Сидор%';
нежели
select * from clients where substr(name, 1, 5) = 'Сидор';
PS. Просто пример из практики. 😉
PPS. Oracle.
Если речь идет об SQL, то коротко — это поиск строк , которые удовлетворяют(содержат) заданному слову/фразе/регулярке. Более подробно тут
В зависимости от СУБД в предикате LIKE могут использоваться регулярные выражения.
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Где как в SQL объясняется с использованием 6 примеров
Обзор: В этом руководстве вы поймете логический оператор ПОДОБНО и где вы можете использовать ГДЕ ПОДОБНО в SQL с 6 различными примерами.
Введение: как в запросе SQLВ SQL Server LIKE — это логический оператор, который определяет, соответствует ли строка символов шаблону. Оператор LIKE в SQL-запросе используется в предложении WHERE операторов SELECT для фильтрации строк на основе сопоставления с образцом.
Как и в SQL-запросе, также используется в операторах UPDATE и DELETE для фильтрации строк на основе сопоставления с образцом.
Есть несколько подстановочных знаков, часто используемых с оператором LIKE:
- «%» Знак процента представляет ноль, один или несколько символов
- «_» Подчеркивание представляет один символ
- «[список алфавитов]» любые отдельные алфавиты в указанном наборе.
- «[алфавиты-алфавиты]» любые одиночные алфавиты в указанном диапазоне. 9]” любой одиночный символ вне списка или диапазона.
Синтаксис:
ВЫБЕРИТЕ
столбец1, столбец2
ИЗ
имя_таблицы
ГДЕ
столбец LIKE pattern
Пример № 1: «%» Знак процента в конце текста с WHERE LIKE В приведенном ниже примере Like SQL Query выберет столбцы, указанные в SQL-запросе, с именем клиента, начинающимся с « M», потому что мы добавили подстановочные знаки «%» в конце текста/символа.
Как вы можете видеть в результате во втором столбце « Customer_Name », начинайте только с «M»
SELECT
[Пользовательский ИД],
[Имя Клиента],
[Провинция]
ИЗ
[Клиенты_Тбл]
ГДЕ
[Customer_Name] LIKE 'M%'
Результат :
Пример #2: «%» Знак процента Начало текстаИмя клиента, оканчивающееся на «on», потому что мы добавили подстановочные знаки «%» в начале текста/символа.
Как вы можете видеть в результате во второй колонке « Customer_Name » заканчивается только «on»
SELECT
Имя Клиента
ИЗ
Customers_Tbl
ГДЕ
Customer_Name LIKE '%on'
Результат :
Пример 3: «%» Знак процента в середине текста/персонаж. поэтому этот запрос извлечет записи из таблицы только для этих имя_клиента , которые начинаются с «S » и заканчиваются на « Y »
SELECT
[Имя Клиента],
[Провинция]
ИЗ
[dbo]. [Customers_Tbl]
ГДЕ
[Customer_Name] НРАВИТСЯ 'S%Y'
ГРУППА ПО
[Имя Клиента],
[Провинция]
Результат :
Пример 4. Используйте подчеркивание «_» в WHERE LIKE в SQLСимвол подчеркивания представляет собой одиночный символ/текст/алфавит. Это означает, что этот подстановочный знак будет отображать записи с одним текстом на месте «_».
В приведенном ниже примере подстановочный знак оператора Like % используется с «_», чтобы мы могли видеть те имена клиентов, которые имеют алфавит « A » во второй позиции имени и Имя_клиента заканчиваются на « Z». “
ВЫБЕРИТЕ
[Имя Клиента],
[Провинция]
ИЗ
[dbo].[Customers_Tbl]
ГДЕ
[Customer_Name] НРАВИТСЯ '_A%Z'
ГРУППА ПО
[Имя Клиента],
[Провинция]
Результат :
Пример № 5: «[список алфавитов]» Начните с алфавитов Эта скобка очень полезна, когда вы хотите найти в таблице более одного текста/алфавита. В приведенном ниже примере это показано чтобы показать все записи, которые начинаются с
ВЫБЕРИТЕ
[Имя Клиента],
[Провинция]
ИЗ
[dbo].[Customers_Tbl]
ГДЕ
[Имя_клиента] НРАВИТСЯ '[KD]%'
ГРУППА ПО
[Имя Клиента],
[Провинция]
Результат :
Пример 6: «[алфавиты- алфавиты ]» диапазон В приведенном ниже примере показано, как извлечь записи, начинающиеся с диапазона текста/символов из U и Y , , что означает, что он покажет Customer_Name начните с U, V, W, X, YКак и в таблице клиентов, у нас есть только клиенты в этом диапазоне имя начинается с V, X, Y
SELECT
[Имя Клиента]
ИЗ
[dbo]. [Customers_Tbl]
ГДЕ
[Customer_Name] НРАВИТСЯ '[U-Y]%'
ГРУППА ПО
[Customer_Name]
Результат :
Вывод:Надеемся, что в приведенном выше примере 6 вы понимаете, как можно реализовать и использовать оператор LIKE с предложением WHERE. Это будет очень полезно при манипулировании данными во время анализа данных на сервере SQL.
SQL LIKE
Резюме : в этом руководстве вы узнаете, как использовать оператор SQL LIKE
для проверки соответствия значения шаблону.
Знакомство с оператором SQL LIKE
Оператор LIKE является одним из логических операторов SQL. Оператор
возвращает значение true, если значение соответствует шаблону, или false в противном случае.
Синтаксис оператора LIKE следующий:
Язык кода: SQL (язык структурированных запросов) (sql)
выражение LIKE шаблон
В этом синтаксисе оператор LIKE
проверяет, соответствует ли выражение шаблону. Стандарт SQL предоставляет вам два подстановочных знака для создания шаблона:
-
%
процент подстановочного знака соответствует нулю, одному или более символам -
_
подстановочный знак соответствует одному символу.
Ниже показан пример использования подстановочных знаков % и _:
Expression | Meaning |
---|---|
LIKE 'Kim%' | match a string that starts with Kim |
LIKE '%er' | match a string that заканчивается на er |
LIKE '%ch%' | соответствует строке, содержащей ch |
LIKE 9 соответствует строке, которая начинается с | 40213 Le and is followed by one character e.g., Les, Len…|
LIKE '_uy' | match a string that ends with uy and is preceded by one character e. g., guy |
LIKE '%are_' | соответствует строке, содержащей are и заканчивающейся одним символом количество символов |
Обратите внимание, что помимо подстановочных знаков % и _ в некоторых системах баз данных могут быть другие подстановочные знаки, характерные для этих баз данных.
не похож на
, чтобы отвести на смену оператора , например,
, вы используете Не
Оператор:
. шаблон или ложь в противном случае.
Экранирующий символ
Чтобы сопоставить строку, содержащую подстановочный знак, например
10%
, необходимо указать операторуLIKE
обрабатывать%
в10%
как обычный символ.Для этого необходимо явно указать escape-символ после предложения
ESCAPE
:Язык кода: SQL (например, язык структурированных запросов) (sql) 9000 :
выражение LIKE pattern ESCAPE escape_character
Язык кода: JavaScript (javascript)
значение LIKE '%10!%%' ESCAPE '!'
В этом примере ! является escape-символом.