Like в sql – SQL — Оператор LIKE

Содержание

SQL Like

LIKE — данный оператор используется с условием WHERE для поиска значений по образцу.

Синтаксис SQL LIKE

Пример 1

Есть таблица «Persons»:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого начинается с буквы «s» из таблицы выше.

Для этого используем такой запрос:

«%» — данный знак является маской. Обозначает любые символы.

Результат запроса:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Пример 2

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого заканчивается на букву «s» из таблицы выше.

Для этого используем такой запрос:

Результат запроса:

P_IdLastNameFirstName
Address
City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Пример 3

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого содержит в себе буквы «tav». Не важно, в каком месте будут находиться данные символы, в начале или конце слова.

Для этого используем такой запрос.:

Результат запроса:

P_IdLastNameFirstNameAddressCity
3 Pettersen Kari Storgt 20 Stavanger

Пример 4

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого

не содержит в себе буквы «tav». Используем ключевое слово NOT.

Для этого используем такой запрос.:

Результат запроса:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

dimonchik.com

LIKE SQL Server — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать в SQL Server условие LIKE (Transact-SQL) для выполнения сопоставления с шаблоном с синтаксисом и примерами.

Описание

Условие LIKE SQL Server (Transact-SQL) определяет, совпадает ли указанная символьная строка с заданным шаблоном в предложении WHERE в операторе SELECT, INSERT, UPDATE или DELETE. Это позволяет выполнять сопоставление образцов.

Синтаксис

Синтаксис условия LIKE в SQL Server (Transact-SQL):

expression LIKE pattern [ ESCAPE ‘escape_character’ ]

Параметры или аргументы

expression — символьное выражение, такое как столбец или поле.
pattern — символьное выражение, содержащее подстановочный символ. Подстановочные символы, которые вы можете выбрать:

символпояснение
%Позволяет вам сопоставлять любую строку любой длины (включая нулевую длину)
_Позволяет вам сопоставлять один символ
[ ]Позволяет вам сопоставлять любой символ в скобках [] (например, [abc] будет соответствовать символам a, b или c)
[^]Позволяет вам сопоставлять любой символ, не находящийся в скобках [^] (например, [^ abc] будет соответствовать любому символу, который не является символом a, b или c)

escape_character — необязательный. Это позволяет вам проверять для буквенных экземпляров символа подстановки, например % или _.

Пример использования подстановочного символа % (символ процента)

Первый пример SQL Server LIKE, который мы рассмотрим, включает использование шаблона %.

Давайте объясним, как шаблон % работает в SQL Server условии LIKE. Мы хотим найти всех employees (сотрудников), чье имя last_name начинается с ‘Б’.
Например:

SELECT * FROM employees WHERE last_name LIKE ‘Б%’;

SELECT *

  FROM employees

WHERE last_name LIKE ‘Б%’;

Этот пример условия SQL Server LIKE вернет всех employees у которых last_name будет начинаться на ‘Б’ такие как ‘Брошкин’, ‘Баранников’, ‘Богомолец’ и т.д.

Вы также можете использовать групповой символ % несколько раз в одной строке. Например:

SELECT * FROM employees WHERE last_name LIKE ‘%o%’;

SELECT *

  FROM employees

WHERE last_name LIKE ‘%o%’;

В этом примере SQL LIKE мы ищем всех employees (сотрудников), у которых last_name содержит букву ‘o’.

Пример использования подстановочного символа _ (символ подчеркивания)

Затем давайте объясним, как подстановочный символ _ (символ подчеркивания) работает в условии SQL Server LIKE. Помните, что _ ищет только один символ.
Например:

SELECT * FROM employees WHERE last_name LIKE ‘Кр_т’;

SELECT *

  FROM employees

WHERE last_name LIKE ‘Кр_т’;

Этот пример условия SQL LIKE возвращает всех employees (сотрудников), чье имя last_name равно 4 символам, причем первые два символа — «Кр», а последний символ — «т». Например, он может вернуть сотрудников, чье last_name является «Крот», «Крат», «Крут», «Крит» и т.д.

Вот еще один пример:

SELECT * FROM employees WHERE employee_number LIKE ‘123_’;

SELECT *

  FROM employees

WHERE employee_number LIKE ‘123_’;

Вам может понадобиться найти номер employee_number, но у вас есть только 3 из 4 цифр. В приведенном выше примере будет извлечено потенциально 10 записей (где отсутствующее значение могло бы равняться чему угодно от 0 до 9). Например, он может вернуть employees, чьи employee_number:

1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239

Пример использования подстановочного символа [] (квадратные скобки).

Далее, давайте объясним, как подстановочный символ [] (квадратные скобки) работает в условии SQL Server LIKE. Помните, что то, что содержится в квадратных скобках, это символы, которые вы пытаетесь сопоставить.
Например:

SELECT * FROM employees WHERE first_name LIKE ‘К[ио]тов’;

SELECT *

  FROM employees

WHERE first_name LIKE ‘К[ио]тов’;

Этот пример условия LIKE SQL Server возвращает всех employees, чье имя first_name равно 5 символам, причем первый символ — «К», а три последних символа — «тов», а второй символ — «и» или «о». Таким образом, в этом случае он будет соответствовать либо «Китов», либо «Котов».

Пример использования подстановочного символа [^] (квадратные скобки с символом ^).

Затем давайте объясним, как подстановочный символ [^] (квадратные скобки с подстановочным символом ^) работает в условии SQL Server LIKE. Помните, что то, что содержится в квадратных скобках, это символы, которые вы НЕ хотите сопоставлять.
Например:

SELECT * FROM employees WHERE first_name LIKE ‘К[^ио]тов’;

SELECT *

  FROM employees

WHERE first_name LIKE ‘К[^ио]тов’;

Этот пример условия SQL Server LIKE возвращает всех сотрудников, чье имя first_name равно 5 символам, причем первый символ — «К», а три последних символа — «тов», а второй символ не является «и» или «о». Таким образом, в этом случае он будет соответствовать таким значениям, как «Катов», «Кутов», «Кетов» и т.д. Но это не будет соответствовать ни «Китов», ни «Котов».

Пример использования оператора NOT

Затем давайте посмотрим, как использовать SQL Server NOT Operator с помощью подстановочных символов.

Будем использовать % с оператором NOT. Вы также можете использовать условие SQL LIKE для поиска employees (сотрудников), имя которых не начинается с буквы «Б».
Например:

SELECT * FROM employees WHERE last_name NOT LIKE ‘Б%’;

SELECT *

  FROM employees

WHERE last_name NOT LIKE ‘Б%’;

Поместив оператор NOT перед условием LIKE SQL Server, вы сможете получить всех employees, имя которых не начинается с «Б».

Пример использования символов Escape

Важно понимать, как сопоставить «Escape Characters» с pattern. Эти примеры относятся конкретно к экранирующим символам в SQL Server.

Предположим, вы хотели найти символ % или _ в условии SQL Server LIKE. Вы можете сделать это, используя символ Escape.

Обратите внимание, что вы можете определить escape-символ только как один символ (length = 1).
Например:

SELECT * FROM employees WHERE secret_hint LIKE ‘123!%455’ ESCAPE ‘!’;

SELECT *

  FROM employees

WHERE secret_hint LIKE ‘123!%455’ ESCAPE ‘!’;

Этот пример условия SQL LIKE идентифицирует символ ! как escape-символ. Это предложение вернет всех employees, чей secret_hint составляет 123%455.

Вот еще один более сложный пример использования escape-символов в SQL Server условии LIKE.

SELECT * FROM employees WHERE secret_hint LIKE ‘H%!%’ ESCAPE ‘!’;

SELECT *

  FROM employees

WHERE secret_hint LIKE ‘H%!%’ ESCAPE ‘!’;

Этот пример условия SQL LIKE возвращает всех employees, чей secret_hint начинается с ‘H’ и заканчивается на ‘%’. Например, он возвращает значение, например «Help%».

Вы также можете использовать escape-символ с символом _ в условии SQL Server LIKE.
Например:

SELECT * FROM employees WHERE secret_hint LIKE ‘H%!_’ ESCAPE ‘!’;

SELECT *

  FROM employees

WHERE secret_hint LIKE ‘H%!_’ ESCAPE ‘!’;

Этот пример условия SQL LIKE возвращает всех employees, чей secret_hint начинается с ‘H’ и заканчивается на ‘_’. Например, он вернет значение, например «Help_».

oracleplsql.ru

Команда LIKE — поиск по базе данных

Команда LIKE задает поиск по определенному шаблону.

См. также команду NOT, которая делает отрицание (к примеру, так: NOT LIKE).

Синтаксис

SELECT * FROM имя_таблицы WHERE поле LIKE шаблон_поиска

Примеры

Все примеры будут по этой таблице workers, если не сказано иное:

id
айди
name
имя
age
возраст
salary
зарплата
1Дима23400
2Петя25500
3Вася23500
4Коля301000
5Иван27500
6Кирилл281000

Пример

В данном примере команда LIKE найдет все записи, у которых имя заканчивается на ‘я’:

SELECT * FROM workers WHERE name LIKE '%я'

SQL запрос выберет следующие строки:

id
айди
name
имя
age
возраст
salary
зарплата
2Петя25500
3Вася23500
4Коля301000

Пример

Давайте выберем те записи, у которых возраст начинается с цифры 2, а затем идет еще один символ:

SELECT * FROM workers WHERE age LIKE '2_'

SQL запрос выберет следующие строки:

id
айди
name
имя
age
возраст
salary
зарплата
1Дима23400
2Петя25500
3Вася23500
5Иван27500
6Кирилл281000

old.code.mu

LIKE условие MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать MySQL условие LIKE для выполнения сопоставления шаблонов с синтаксисом и примерами.

Описание

MySQL условие LIKE позволяет использовать шаблоны в операторе WHERE для оператора SELECT, INSERT, UPDATE или DELETE. Это позволяет выполнять сопоставление шаблонов.

Синтаксис

Синтаксис условия LIKE в MySQL:

expression LIKE pattern [ ESCAPE ‘escape_character’ ]

Параметры или аргументы

expression — символьное выражение, такое как столбец или поле.
pattern — символьное выражение, содержащее сопоставление шаблонов. Шаблоны, которые вы можете выбрать:
% — позволяет вам сопоставлять любую строку любой длины (включая нулевую длину)
_ — позволяет вам сопоставлять один символ
escape_character — необязательный. Это позволяет вам проверять для буквенных экземпляров символы подстановки, такие как % или _. Если вы не укажите escape_character, MySQL предположит, что \ является escape_character.

Пример использования символа % (подстановочный символ процента)

Первый MySQL пример LIKE, который мы рассмотрим, включает использование % (подстановочный символ процента).

Рассмотрим как % работает в MySQL условии LIKE. Мы хотим найти всех customers, last_name которых начинается с «Ber».

SELECT customer_name FROM customers WHERE last_name LIKE ‘Ber%’;

SELECT customer_name

  FROM customers

WHERE last_name LIKE ‘Ber%’;

Вы также можете использовать % несколько раз в одной строке.
Например:

SELECT customer_name FROM customers WHERE last_name LIKE ‘%ns%’;

SELECT customer_name

  FROM customers

WHERE last_name LIKE ‘%ns%’;

В этом примере MySQL условия LIKE мы ищем всех customers, у которых last_name содержит символы ‘ns’.

Пример использования подстановочного символа _ (подстановочный символ подчеркивания)

Рассмотрим, как знак _ (подстановочный символ подчеркивания) работает в MySQL условии LIKE. Помните, что подстановочный символ _ означает только один символ.
Например:

SELECT supplier_name FROM suppliers WHERE supplier_name LIKE ‘Ber_ard’;

SELECT supplier_name

  FROM suppliers

WHERE supplier_name LIKE ‘Ber_ard’;

Этот пример MySQL условия LIKE возвращает всех suppliers, supplier_name которых составляет 7 символов, причем первые три символа — «Ber», а последние три символа — «ard». Например, он может вернуть всех, supplier_name которых — ‘Bernard’, ‘Berzard’, ‘Bermard’, ‘Bersard’ и т.д.

И еще один пример:

SELECT * FROM suppliers WHERE account_number LIKE ‘12345_’;

SELECT *

  FROM suppliers

WHERE account_number LIKE ‘12345_’;

Вам может понадобиться найти номер учетной записи, но у вас есть только 5 из 6 цифр. В приведенном выше примере будет извлечено потенциально 10 записей (где отсутствующее значение могло бы равняться чему угодно от 0 до 9). Например, запрос может вернуть suppliers, чьи номера учетной записи: 123450, 123451, 123452, 123453, 123454, 123455, 123456, 123457, 123458, 123459

Пример использования оператора NOT

Рассмотрим, как вы будете использовать оператор NOT с подстановочными символами.

Давайте использовать подстановочный символ % с оператором NOT. Вы также можете использовать MySQL условие LIKE для поиска suppliers, supplier_name которых не начинается с «B».
Например:

SELECT supplier_name FROM suppliers WHERE supplier_name NOT LIKE ‘B%’;

SELECT supplier_name

  FROM suppliers

WHERE supplier_name NOT LIKE ‘B%’;

Помещая оператора NOT перед MySQL условием LIKE, вы получите всех suppliers, supplier_name которых не начинается с «B».

Пример использования символов Escape

Важно понять, каким образом «Escape Characters» сравнивается с шаблоном. Эти примеры относятся конкретно к экранирующим символам в MySQL.

Предположим, вы хотели найти символы % или _ в MySQL условии LIKE. Вы можете сделать это, используя символ Escape.

Обратите внимание, что вы можете определить только escape-символ как один символ (длина 1).
Например:

SELECT * FROM suppliers WHERE supplier_name LIKE ‘B\%’;

SELECT *

  FROM suppliers

WHERE supplier_name LIKE ‘B\%’;

Поскольку мы не указали каким будет escape-символ, то MySQL предполагает, что «\» и является escape-символом. Т.к. MySQL предположил, что «\» это и есть escape-символ, что приведет к тому, что MySQL обработает символ % как литерал, вместо подстановочного символа. Затем этот запрос будет возвращать всех suppliers, у которых supplier_name = ‘B\%’.

Мы можем переопределить escape-символ по умолчанию в MySQL, предоставив модификатор ESCAPE следующим образом:

SELECT * FROM suppliers WHERE supplier_name LIKE ‘Br!%’ ESCAPE ‘!’;

SELECT *

  FROM suppliers

WHERE supplier_name LIKE ‘Br!%’ ESCAPE ‘!’;

Этот пример MySQL условия LIKE идентифицирует символ ! как escape-символ. Escape-символ ! приведет к тому, что MySQL обрабатывает символ % как литерал. В результате в этом запросе также будут выбраны все suppliers, supplier_name которых Br%.

Вот еще один более сложный пример использования escape-символов в MySQL условии LIKE.

SELECT * FROM suppliers WHERE supplier_name LIKE ‘H%\%’;

SELECT *

  FROM suppliers

WHERE supplier_name LIKE ‘H%\%’;

Этот пример условия LIKE MySQL возвращает всех suppliers, чье имя начинается с H и заканчивается на %. Например, он вернет значение, например «Hello%». Поскольку мы не указывали escape-символ в условии LIKE, MySQL предполагает, что escape-символ «\», что приводит к тому, что MySQL обрабатывает второй символ % как литерал вместо подстановочного символа.

Мы могли бы изменить это условие LIKE, указав escape-символ следующим образом:

SELECT * FROM suppliers WHERE supplier_name LIKE ‘H%!%’ ESCAPE ‘!’;

SELECT *

  FROM suppliers

WHERE supplier_name LIKE ‘H%!%’ ESCAPE ‘!’;

Этот пример MySQL условия LIKE возвращает всех suppliers, имя которых начинается с H и заканчивается символом %. Например, он вернет значение, например «Hello%».

Вы также можете использовать escape character с символом _ в MySQL условии LIKE.
Например:

SELECT * FROM suppliers WHERE supplier_name LIKE ‘H%\_’;

SELECT *

  FROM suppliers

WHERE supplier_name LIKE ‘H%\_’;

Опять же, поскольку не предусмотрен модификатор ESCAPE, MySQL использует «\» в качестве символа escape, в результате чего символ _ обрабатывается как литерал вместо подстановочного символа. В этом примере будут возвращены все suppliers, supplier_name которых начинается с H и заканчивается на _. Например, запрос вернет значение, такое как «Hello_».

oracleplsql.ru

SQL условие LIKE — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном материале вы узнаете, как использовать SQL условие LIKE (для сопоставления с шаблоном) с синтаксисом и примерами.

Описание

SQL условие LIKE позволяет использовать подстановочные символы для сопоставления с шаблоном в запросе. Условие LIKE используется в предложении WHERE оператора SELECT, INSERT, UPDATE или DELETE.

Синтаксис

Синтаксис для условия LIKE в SQL.

expression LIKE pattern [ ESCAPE ‘escapecharacter’ ]

Параметры или аргумент

expression
Символьное выражение, такое как поле или столбец
pattern
Символьное выражение, которое содержит сопоставление с шаблоном. Подстановочные символы, которые вы можете выбрать:
СимволОбъяснение
%Позволяет сопоставить любую строку любой длины (включая нулевую длину)
_Позволяет сопоставить одиночный символ
ESCAPE ‘escapecharacter’
Необязательный. Это позволяет вам сопоставлять шаблоны с литеральными подстановочными символами, такими как % или _.

Пример — использование подстановочного символа % в условии LIKE

Давайте рассмотрим, как подстановочный символ % работает в SQL условии LIKE. Помните, что подстановочный символ % соответствует любой строке любой длины (включая нулевую длину).
В этом первом примере мы хотим найти все записи в таблице customers, где last_name клиента начинается с ‘C’.
В этом примере у нас есть таблица customers со следующими данными:

customer_idfirst_namelast_namefavorite_website
4000JustinBiebergoogle.com
5000SelenaGomezbing.com
6000 MilaKunisyahoo.com
7000TomCruiseoracle.com
8000JohnnyDeppNULL
9000RussellCrowegoogle.com

Введите следующий SQL оператор.

SELECT * FROM customers WHERE last_name LIKE ‘C%’ ORDER BY last_name;

SELECT *

  FROM customers

WHERE last_name LIKE ‘C%’

ORDER BY last_name;

Будет выбрано 2 записи. Вот результаты, которые вы должны получить.

customer_idfirst_namelast_namefavorite_website
7000TomCruiseoracle.com
9000RussellCrowegoogle.com

В этом примере возвращаются записи таблицы customers, где last_name начинается с ‘C’. Как видите, были возвращены записи по фамилиям Cruise и Crowe.
Поскольку условие LIKE не чувствительно к регистру, следующий SQL оператор вернет те же результаты.

SELECT * FROM customers WHERE last_name LIKE ‘c%’ ORDER BY last_name;

SELECT *

  FROM customers

WHERE last_name LIKE ‘c%’

ORDER BY last_name;

Использование нескольких подстановочных символов % в условии LIKE

Вы также можете использовать подстановочный символ % несколько раз с условием LIKE.
Используя ту же таблицу customers со следующими данными:

customer_idfirst_namelast_namefavorite_website
4000JustinBiebergoogle.com
5000SelenaGomezbing.com
6000 MilaKunisyahoo.com
7000TomCruiseoracle.com
8000JohnnyDeppNULL
9000RussellCrowegoogle.com

Попробуем найти все значения last_name из таблицы customers, где last_name содержит букву ‘e’.
Введите следующий SQL оператор:

SELECT last_name FROM customers WHERE last_name LIKE ‘%e%’ ORDER BY last_name;

SELECT last_name

  FROM customers

WHERE last_name LIKE ‘%e%’

ORDER BY last_name;

Будет выбрано 3 записей. Вот результаты, которые вы должны получить.

last_name
Bieber
Gomez
Depp

В этом примере фамилии Bieber, Gomez и Depp содержат букву ‘е’.

Пример — использование подстановочного символа _ в условии LIKE

Далее рассмотрим, как подстановочный символ _ (символ подчеркивания) работает в условии LIKE. Помните, что подстановочный символ _ ищет ровно один символ, в отличие от подстановочного символа %.
Используя таблицу categories со следующими данными:

category_idcategory_name
25Deli
50Produce
75Bakery
100General Merchandise
125Technology

Попробуем найти все записи из таблицы categories, где category_id имеет длину 2 цифры и заканчивается на ‘5’. Введите следующий SQL оператор.

SELECT * FROM categories WHERE category_id LIKE ‘_5’;

SELECT *

  FROM categories

WHERE category_id LIKE ‘_5’;

Будет выбрано 2 записи. Вот результаты, которые вы должны получить.

category_idcategory_name
25Deli
75Bakery

В этом примере есть 2 записи, которые будут соответствовать шаблону — category_id со значениями 25 и 75. Обратите внимание, что category_id равный 125 не был выбран потому что символ _ соответствует только одному символу.

Использование нескольких подстановочных символов _ в условии LIKE

Если вы хотите сопоставить трехзначное значение, заканчивающееся на «5», вам нужно будет использовать подстановочный символ _ два раза. Вы можете изменить свой запрос следующим образом.

SELECT * FROM categories WHERE category_id LIKE ‘__5’;

SELECT *

  FROM categories

WHERE category_id LIKE ‘__5’;

Теперь вы вернете значение category_id равное 125.

category_idcategory_name
125Technology

Пример — использование оператора NOT с условием LIKE

Далее давайте рассмотрим пример использования оператора NOT с условием LIKE.
В этом примере у нас есть таблица suppliers со следующими данными:

supplier_idsupplier_namecitystate
100YandexMoscowRussian
200GoogleLansingMichigan
300OracleRedwood CityCalifornia
400BingRedmondWashington
500YahooSunnyvaleWashington
600DuckDuckGoPaoliPennsylvania
700QwantParisFrance
800FacebookMenlo ParkCalifornia
900Electronic ArtsSan FranciscoCalifornia

Давайте посмотрим на все записи в таблице suppliers, где supplier_name не содержит литеру ‘o’. Введите следующий SQL оператор.

SELECT * FROM suppliers WHERE supplier_name NOT LIKE ‘%o%’;

SELECT *

  FROM suppliers

WHERE supplier_name NOT LIKE ‘%o%’;

Будут выбраны 4 записи. Вот результаты, которые вы должны получить.

supplier_idsupplier_namecitystate
100YandexMoscowRussian
300OracleRedwood CityCalifornia
400BingRedmondWashington
700QwantParisFrance

В этом примере в таблице suppliers есть четыре записи, в которых supplier_name не содержит литеру ‘o’.

Пример — использование escape-символов с условием LIKE

Важно понимать, как использовать «escape-символ» когда он соответствует шаблону. Вы можете экранировать % или _ и искать литеральные версии.
Допустим, вы хотели найти % как литерал в условии LIKE. Вы можете сделать это с помощью escape-символа. В нашем примере мы будем использовать ! как escape-символ в условии LIKE.
NOTE: Вы можете определить только escape-символ как один символ. Лучше всего выбрать такой символ, который не будет появляться в ваших данных очень часто, например ! или же #.
В этом примере мы имеем таблицу test со следующими данными:

test_idtest_value
110%
225%
3100
499

Мы могли бы вернуть все записи из таблицы test, где test_value содержит литерал %. Введите следующий SQL оператор.

SELECT * FROM test WHERE test_value LIKE ‘%!%%’ escape ‘!’;

SELECT *

  FROM test

WHERE test_value LIKE ‘%!%%’ escape ‘!’;

Вот результаты, которые вы должны получить.

test_idtest_value
110%
225%

В этом примере символ ! определяется как escape-символ. Первое и последнее значения % в условии LIKE рассматриваются как обычные подстановочные символы. !% является экранированным %, поэтому он рассматривается как литеральное значение %.
Вы можете дополнительно изменить приведенный выше пример и возвращать только те test_values, которые начинаются с 1 и содержат литерал %. Введите следующий SQL оператор:

SELECT * FROM test WHERE test_value LIKE ‘1%!%%’ escape ‘!’;

SELECT *

  FROM test

WHERE test_value LIKE ‘1%!%%’ escape ‘!’;

Вот результаты, которые вы должны получить.

Этот пример, на этот раз, вернет только одну запись. Потому что есть только один test_value, который начинается на 1 и содержит литерал %.

oracleplsql.ru

SQL LIKE — строка с заданными символами и её поиск

Часто с помощью предиката SQL LIKE найти нужную строку в текстовых значениях таблицы проще, чем с помощью оператора равенства (=). Предикат LIKE используется в секции WHERE. После предиката прописывается выражение, содержащее символы алфавита, а также специальные символы — знак процента (%) и подчёркивание (_).

  • Символ % соответствует любому количеству любых символов, а также их отсутствую.
  • Символ _ соответствует ровно одному любому символу.

Приведём виды наиболее распространённых выражений, которые используются с предикатом LIKE для поиска подстроки.

  • ‘xyz%’ — любые строки, которые начинаются с букв xyz;
  • ‘xyz_’ — строка длиной в определённое количество символов, которая обязательно начинается с указанных букв;
  • ‘%z’ — любая последовательность символов, которая заканчивается символом z;
  • ‘%Word%’ — любая последовательность символов, содержащая слово ‘Word’ в любой позиции строки;
  • ‘% % %’ — строка, содержащая не менее двух пробелов.

Следует обратить внимание, что в этих выражениях Word — не то же самое, что word, так как регистр символов имеет значение. В целом же синтаксис запросов с предикатом LIKE следующий:

SELECT СТОЛБЦЫ FROM ИМЯ_ТАБЛИЦЫ WHERE ИМЯ_СТОЛБЦА LIKE ВЫРАЖЕНИЕ

В примерах будем работать с базой данных «Театр». Таблица Play содержит данные о постановках. Таблица Team — о ролях актёров. Таблица Actor — об актёрах. Таблица Director — о режиссёрах. Поля таблиц, первичные и внешние ключи можно увидеть на рисунке ниже (для увеличения нажать левой кнопкой мыши). Данные будем извлекать из одной таблицы — Play.

Пример 1. Вывести спектакли, названия которых начинаются со слова ‘King’.

Пишем запрос в котором с предикатом LIKE используем выражение ‘King%’:

SELECT Name FROM Play WHERE Name LIKE ‘King%’

В результате выполнения запроса будет выведена таблица с одной строкой:

Пример 2. Вывести спектакли, названия которых начинаются с буквы ‘O’ и содержат 7 символов.

Пишем запрос в котором с предикатом LIKE используем выражение ‘O______’ (подчёркивание проставлено 6 раз):

SELECT Name FROM Play WHERE Name LIKE ‘O______’

В результате выполнения запроса будет выведена таблица с одной строкой:

Пример 3. Вывести спектакли, названия которых заканчиваются буквой ‘a’.

Пишем запрос в котором с предикатом LIKE используем выражение ‘%a’ (подчёркивание проставлено 6 раз):

SELECT Name FROM Play WHERE Name LIKE ‘%a’

В результате выполнения запроса будет выведена таблица со следующими строками:

Matilda
Antony and Cleopatra

Пример 4. Вывести спектакли, в названии которых содержится слово «War», например, такие как «The War That Never Ends», «The Wars of the Roses», но не «Howards End».

Пишем запрос в котором с предикатом LIKE используем выражение ‘%War%’:

SELECT Name FROM Play WHERE Name LIKE ‘%War%’

В результате выполнения запроса будет выведена таблица:

The Wars of the Roses
The War That Never Ends

Пример 5. Вывести спектакли, в названиях которых содержится не менее пяти пробелов.

Пишем запрос в котором с предикатом LIKE используем выражение ‘% % % % % %’:

SELECT Name FROM Play WHERE Name LIKE ‘% % % % % %’

В результате выполнения запроса будет выведена таблица:

Jeeves and Wooster in Perfect Nonsense
All s Well That Ends Well
Morte d Arthur — Sir Thomas Malory

Поделиться с друзьями

Реляционные базы данных и язык SQL

function-x.ru

SQL LIKE Оператор


LIKE оператор используется в предложении WHERE для поиска определенного шаблона в колонке.


LIKE Оператор SQL

LIKE оператор используется для поиска определенного шаблона в колонке.

SQL LIKE Синтаксис

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern ;


Демо-версия базы данных

В этом уроке мы будем использовать хорошо известную базу данных Борей.

Ниже приводится подборка из «Customers» таблицы:

Пользовательский ИД Имя Клиента Контактное лицо Адрес город Почтовый индекс Страна
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Christina Berglund Berguvsvagen 8 Lulea S-958 22 Sweden

Примеры SQL LIKE оператора

Следующий SQL — оператор выбирает всех клиентов с городом , начиная с буквы «s» :

Совет: «%» знак используется для определения маски (недостающие буквы) до и после рисунка. Вы узнаете больше о знаках подстановки в следующей главе.

Следующий SQL — оператор выбирает всех клиентов с городом заканчивая буквой «s» :

Следующий SQL — оператор выбирает всех клиентов со страной , содержащей шаблон «land» :

пример

www.w3bai.com

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *