SQLLab
Теория· 7 мин· 10 XP

Шаблоны % и _

Зачем это нужно

Иногда нужно найти строки по части текста: все товары со словом «Pro», всё что начинается на «Apple», описания содержащие слово «кожа». Оператор = требует точного совпадения. LIKE позволяет искать по шаблону.

Аналогия с жизнью

Поиск в браузере: вводите «Air» — и видите всё где это слово встречается. В Word: Ctrl+F и ищете часть слова. LIKE — это Ctrl+F для базы данных.

Два специальных символа

СимволЗначениеПример шаблонаЧто найдёт
%Любое количество любых символов'%Pro%'«iPhone 15 Pro», «AirPods Pro»
_Ровно один любой символ'_984'«1984» (1 символ + «984»)

Синтаксис

sql
WHERE колонка LIKE 'шаблон'

Разбор примеров на датасете products

sql
-- Содержит «Air» в любом месте названия
SELECT name FROM products WHERE name LIKE '%Air%';
-- Найдёт: AirPods Pro, Кроссовки Nike Air Max

-- Начинается на «Apple»
SELECT name FROM products WHERE name LIKE 'Apple%';
-- Найдёт: Apple Watch SE

-- Заканчивается на «г» (например, «1 кг»)
SELECT name FROM products WHERE name LIKE '%г';
-- Найдёт: Кофе арабика молотый 1 кг, Протеин сывороточный 1 кг

-- Шаблон с _ — ровно один символ перед «984»
SELECT name FROM products WHERE name LIKE '_984';
-- Найдёт: 1984 (1 символ «1» + «984»)

Как работает %

% заменяет ноль и более символов:

  • 'Pro%' — начинается с «Pro»: «ProSport», «Pro», «Pro123»
  • '%Pro' — заканчивается на «Pro»: «AirPods Pro», «iPhone Pro»
  • '%Pro%' — содержит «Pro» в любом месте
  • '%' — любая строка (то же что без фильтра)

Частые ошибки

Забыли % с нужной стороны — LIKE 'Air' найдёт только строки равные ровно «Air», не «AirPods Pro». Для «содержит» нужны % с обеих сторон: LIKE '%Air%'.

_ вместо % для произвольной длины — LIKE '_Pro' найдёт только строки где перед «Pro» ровно один символ. Если длина неизвестна — используйте %.

Используют = вместо LIKE — WHERE name = '%Air%' ищет строки буквально равные тексту «%Air%» — таких нет. Для шаблонов нужен именно LIKE.

Запомни

% — любое количество символов (включая ноль). _ — ровно один символ. LIKE '%слово%' — «содержит слово».


Мини-практика

Напиши LIKE-шаблон для каждого условия:

  1. Товары, название которых начинается на «Кофе»
  2. Товары, название которых заканчивается на «Pro»
  3. Товары, название которых содержит слово «книга»
  4. Товары, где второй символ названия — «a»
Ответы
  1. 'Кофе%'
  2. '%Pro'
  3. '%книга%'
  4. '_a%'

Прочитайте урок до конца — прогресс засчитается автоматически