LIKE SQL. Введение
LIKE — это универсальный оператор поиска строковых данных по шаблону. Он применяется для фильтрации текста с помощью символов подстановки (% — любое количество символов, _ — один символ).
like sql используют, чтобы находить данные по части строки: email, телефоны, названия товаров, фамилии, адреса, коды.
Синтаксис
SELECT
столбцы
FROM
таблица
WHERE
поле LIKE 'шаблон';
Типовая конструкция
SELECT
u.user_id,
u.email
FROM
users AS u
WHERE
u.email LIKE '%@gmail.com';
Поиск по email-адресам
Gmail-пользователи:
SELECT
*
FROM
table
WHERE
u.email LIKE '%@gmail.com';Почтовый домен компании:
SELECT
*
FROM
table
WHERE
u.email LIKE '%@company.com';Логины с точкой:
SELECT
*
FROM
table
WHERE
u.email LIKE '%.%';Адреса с цифрами:
SELECT
*
FROM
table
WHERE
u.email LIKE '%[0-9]%';Корпоративные email c hr:
SELECT
*
FROM
table
WHERE
u.email LIKE 'hr%@company.com';Почты с поддоменами:
SELECT
*
FROM
table
WHERE
u.email LIKE '%.%.%';Адреса без собаки:
SELECT
*
FROM
table
WHERE
u.email NOT LIKE '%@%';Яндекс-почта:
SELECT
*
FROM
table
WHERE
u.email LIKE '%@yandex.%';Майл.ру:
SELECT
*
FROM
table
WHERE
u.email LIKE '%@mail.ru';Персональные почты с именем ivan:
SELECT
*
FROM
table
WHERE
u.email LIKE 'ivan%@%';Поиск по именам пользователей
Имена начинаются с «Анна»:
SELECT
*
FROM
table
WHERE
u.full_name LIKE 'Анна%';Заканчиваются на «ов»:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '%ов';Внутри содержат «Серг»:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '%Серг%';Фамилии с пробелом:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '% %';ФИО с буквой «Ё»:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '%Ё%';Краткая запись с точкой:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '%.%';Содержат отчество «Иванович»:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '%Иванович%';Женские фамилии на «а»:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '%а';Мужские фамилии на «ский»:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '%ский';Имена из 4 букв:
SELECT
*
FROM
table
WHERE
u.full_name LIKE '____';Фильтрация телефонов
Телефоны начинаются с +7:
SELECT
*
FROM
table
WHERE
u.phone LIKE '+7%';Коды городов 495:
SELECT
*
FROM
table
WHERE
u.phone LIKE '+7 (495)%';Мобильные номера с 9:
SELECT
*
FROM
table
WHERE
u.phone LIKE '+7 9%';Номера с дефисами:
SELECT
*
FROM
table
WHERE
u.phone LIKE '%-%';Телефоны ровно 10 цифр:
SELECT
*
FROM
table
WHERE
u.phone LIKE '__________';Номера с кодом 812:
SELECT
*
FROM
table
WHERE
u.phone LIKE '+7 (812)%';Международные с +44:
SELECT
*
FROM
table
WHERE
u.phone LIKE '+44%';Номера с окончанием 00:
SELECT
*
FROM
table
WHERE
u.phone LIKE '%00';Служебные с кодом 800:
SELECT
*
FROM
table
WHERE
u.phone LIKE '+7 (800)%';Любые номера с пробелами:
SELECT
*
FROM
table
WHERE
u.phone LIKE '% %';Поиск по названиям товаров
Товары начинаются на Samsung:
SELECT
*
FROM
table
WHERE
p.title LIKE 'Samsung%';Модели iPhone:
SELECT
*
FROM
table
WHERE
p.title LIKE 'iPhone%';Одежда с «XL»:
SELECT
*
FROM
table
WHERE
p.title LIKE '%XL%';Книги со словом SQL:
SELECT
*
FROM
table
WHERE
p.title LIKE '%SQL%';Игрушки Lego:
SELECT
*
FROM
table
WHERE
p.title LIKE 'Lego%';Продукты с «Organic»:
SELECT
*
FROM
table
WHERE
p.title LIKE '%Organic%';Серия HP Pavilion:
SELECT
*
FROM
table
WHERE
p.title LIKE 'HP Pavilion%';Модели с цифрой 5:
SELECT
*
FROM
table
WHERE
p.title LIKE '%5%';Товары с дефисом:
SELECT
*
FROM
table
WHERE
p.title LIKE '%-%';Фильмы со словом Star:
SELECT
*
FROM
table
WHERE
p.title LIKE '%Star%';Фильтрация по категориям и брендам
Категории начинаются с Elec:
SELECT
*
FROM
table
WHERE
c.category LIKE 'Elec%';Категории заканчиваются на ware:
SELECT
*
FROM
table
WHERE
c.category LIKE '%ware';Бренды Apple:
SELECT
*
FROM
table
WHERE
b.name LIKE 'Apple';Бренды с «Tech»:
SELECT
*
FROM
table
WHERE
b.name LIKE '%Tech%';Категории с пробелом:
SELECT
*
FROM
table
WHERE
c.category LIKE '% %';Бренды на букву S:
SELECT
*
FROM
table
WHERE
b.name LIKE 'S%';Категории из 3 символов:
SELECT
*
FROM
table
WHERE
c.category LIKE '___';Бренды с цифрами:
SELECT
*
FROM
table
WHERE
b.name LIKE '%[0-9]%';Категории с дефисом:
SELECT
*
FROM
table
WHERE
c.category LIKE '%-%';Категории с приставкой Super:
SELECT
*
FROM
table
WHERE
c.category LIKE 'Super%';Поиск по адресам и городам
Города начинаются на «New»:
SELECT
*
FROM
table
WHERE
a.city LIKE 'New%';Улицы с «Street»:
SELECT
*
FROM
table
WHERE
a.street LIKE '%Street%';Адреса с номером дома:
SELECT
*
FROM
table
WHERE
a.address LIKE '%[0-9]%';Города заканчиваются на «burg»:
SELECT
*
FROM
table
WHERE
a.city LIKE '%burg';Улицы с точкой:
SELECT
*
FROM
table
WHERE
a.street LIKE '%.%';Города с дефисом:
SELECT
*
FROM
table
WHERE
a.city LIKE '%-%';Адреса с квартирой:
SELECT
*
FROM
table
WHERE
a.address LIKE '%apt%';Города из 4 букв:
SELECT
*
FROM
table
WHERE
a.city LIKE '____';Улицы с «Ave»:
SELECT
*
FROM
table
WHERE
a.street LIKE '%Ave%';Адреса начинаются с «ул.»:
SELECT
*
FROM
table
WHERE
a.address LIKE 'ул.%';Фильтрация по текстам комментариев
Комментарии с «спасибо»:
SELECT
*
FROM
table
WHERE
c.text LIKE '%спасибо%';Жалобы со словом «плохо»:
SELECT
*
FROM
table
WHERE
c.text LIKE '%плохо%';Отзывы с восклицательным знаком:
SELECT
*
FROM
table
WHERE
c.text LIKE '%!%';Тексты с хэштегом:
SELECT
*
FROM
table
WHERE
c.text LIKE '%#%';Сообщения со смайликами:
SELECT
*
FROM
table
WHERE
c.text LIKE '%😊%';Отзывы с словом «рекомендую»:
SELECT
*
FROM
table
WHERE
c.text LIKE '%рекомендую%';Комментарии с «?»:
SELECT
*
FROM
table
WHERE
c.text LIKE '%?%';Сообщения с словом urgent:
SELECT
*
FROM
table
WHERE
c.text LIKE '%urgent%';Тексты с URL:
SELECT
*
FROM
table
WHERE
c.text LIKE '%http%';Отзывы с словом awesome:
SELECT
*
FROM
table
WHERE
c.text LIKE '%awesome%';Поиск по номерам документов
Паспорта серии 45:
SELECT
*
FROM
table
WHERE
d.passport_no LIKE '45____';ИНН из 10 цифр:
SELECT
*
FROM
table
WHERE
d.inn LIKE '__________';СНИЛС с дефисами:
SELECT
*
FROM
table
WHERE
d.snils LIKE '%-%';Водительские номера на A:
SELECT
*
FROM
table
WHERE
d.license_no LIKE 'A%';Номера кредиток на 4:
SELECT
*
FROM
table
WHERE
d.card_no LIKE '4%';Номера счетов с 20 символами:
SELECT
*
FROM
table
WHERE
d.account_no LIKE '____________________';Паспорт заканчивается на 7:
SELECT
*
FROM
table
WHERE
d.passport_no LIKE '%7';ИНН начинается с 77:
SELECT
*
FROM
table
WHERE
d.inn LIKE '77%';СНИЛС с пробелами:
SELECT
*
FROM
table
WHERE
d.snils LIKE '% %';Номер лицензии с буквами и цифрами:
SELECT
*
FROM
table
WHERE
d.license_no LIKE '%[A-Z0-9]%';Фильтрация по датам и форматам
Даты в 2023 году:
SELECT
*
FROM
table
WHERE
d.date_txt LIKE '2023-%';Месяцы с 05:
SELECT
*
FROM
table
WHERE
d.date_txt LIKE '____-05-%';Формат YYYY-MM-DD:
SELECT
*
FROM
table
WHERE
d.date_txt LIKE '____-__-__';Часы 12:
SELECT
*
FROM
table
WHERE
d.time_txt LIKE '12:%';Минуты 30:
SELECT
*
FROM
table
WHERE
d.time_txt LIKE '%:30:%';Секунды 00:
SELECT
*
FROM
table
WHERE
d.time_txt LIKE '%:00';Даты с дефисом:
SELECT
*
FROM
table
WHERE
d.date_txt LIKE '%-%';Тексты с годом 2020:
SELECT
*
FROM
table
WHERE
d.date_txt LIKE '%2020%';Форматы с точкой:
SELECT
*
FROM
table
WHERE
d.date_txt LIKE '%.%';Даты на январь:
SELECT
*
FROM
table
WHERE
d.date_txt LIKE '%-01-%';Сложные комбинации
Пользователи gmail и с именем anna:
SELECT
*
FROM
table
WHERE
u.email LIKE '%@gmail.com' AND u.full_name LIKE 'Anna%';Товары SQL или Java:
SELECT
*
FROM
table
WHERE
p.title LIKE '%SQL%' OR p.title LIKE '%Java%';Адреса без улицы:
SELECT
*
FROM
table
WHERE
a.address NOT LIKE '%Street%';Фильмы без слова Star:
SELECT
*
FROM
table
WHERE
f.title NOT LIKE '%Star%';Телефоны +7 и с кодом 495:
SELECT
*
FROM
table
WHERE
u.phone LIKE '+7 (495)%';Отзывы без слова плохо:
SELECT
*
FROM
table
WHERE
c.text NOT LIKE '%плохо%';Email не gmail:
SELECT
*
FROM
table
WHERE
u.email NOT LIKE '%@gmail.com';Фамилии не на ов:
SELECT
*
FROM
table
WHERE
u.full_name NOT LIKE '%ов';Документы без цифр:
SELECT
*
FROM
table
WHERE
d.doc_no NOT LIKE '%[0-9]%';Комментарии без вопроса:
SELECT
*
FROM
table
WHERE
c.text NOT LIKE '%?%';Заключение
like sql — мощный инструмент работы со строковыми данными. Он полезен для поиска по email, ФИО, телефонам, адресам, категориям и текстам.
В статье разобраны 100 примеров: от простых фильтров по началу строки до сложных комбинаций с AND, OR, NOT.
Используйте LIKE осознанно, так как большое количество условий может замедлять поиск.