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

Содержание

SQL Like

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

Синтаксис SQL LIKE

Пример 1

Есть таблица "Persons":

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

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

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

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

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

P_Id LastName
FirstName
Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Пример 2

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

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

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

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Пример 3

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

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

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

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

P_Id LastName FirstName Address City
3 Pettersen Kari Storgt 20 Stavanger

Пример 4

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого не содержит в себе буквы "tav". Используем ключевое слово NOT.

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

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

P_Id LastName FirstName Address City
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 Дима 23 400
2 Петя 25 500
3 Вася 23 500
4 Коля 30 1000
5 Иван 27 500
6 Кирилл 28 1000

Пример

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

SELECT * FROM workers WHERE name LIKE '%я'

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

id
айди
name
имя
age
возраст
salary
зарплата
2 Петя 25 500
3 Вася 23 500
4 Коля 30 1000

Пример

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

SELECT * FROM workers WHERE age LIKE '2_'

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

id
айди
name
имя
age
возраст
salary
зарплата
1 Дима 23 400
2 Петя 25 500
3 Вася 23 500
5 Иван 27 500
6 Кирилл 28 1000

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_id first_name last_name favorite_website
4000 Justin Bieber google.com
5000 Selena Gomez bing.com
6000  Mila Kunis yahoo.com
7000 Tom Cruise oracle.com
8000 Johnny Depp NULL
9000 Russell Crowe google.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_id first_name last_name favorite_website
7000 Tom Cruise oracle.com
9000 Russell Crowe google.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_id first_name last_name favorite_website
4000 Justin Bieber google.com
5000 Selena Gomez bing.com
6000  Mila Kunis yahoo.com
7000 Tom Cruise oracle.com
8000 Johnny Depp NULL
9000 Russell Crowe google.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_id category_name
25 Deli
50 Produce
75 Bakery
100 General Merchandise
125 Technology

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

SELECT * FROM categories WHERE category_id LIKE '_5';

SELECT *

  FROM categories

WHERE category_id LIKE '_5';

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

category_id category_name
25 Deli
75 Bakery

В этом примере есть 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_id category_name
125 Technology

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

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

supplier_id supplier_name city state
100 Yandex Moscow Russian
200 Google Lansing Michigan
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania
700 Qwant Paris France
800 Facebook Menlo Park California
900 Electronic Arts San Francisco California

Давайте посмотрим на все записи в таблице 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_id supplier_name city state
100 Yandex Moscow Russian
300 Oracle Redwood City California
400 Bing Redmond Washington
700 Qwant Paris France

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

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

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

test_id test_value
1 10%
2 25%
3 100
4 99

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

SELECT * FROM test WHERE test_value LIKE '%!%%' escape '!';

SELECT *

  FROM test

WHERE test_value LIKE '%!%%' escape '!';

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

test_id test_value
1 10%
2 25%

В этом примере символ ! определяется как 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 не будет опубликован. Обязательные поля помечены *