Ответ
LIKE — это оператор в SQL, используемый для поиска строк в столбце по заданному шаблону (pattern matching), а не по точному совпадению.
Синтаксис и специальные символы:
%(знак процента): Соответствует любой последовательности из нуля или более символов._(нижнее подчёркивание): Соответствует ровно одному любому символу.
Примеры запросов:
-- Найти всех, чьё имя начинается на 'Ан'
SELECT * FROM users WHERE name LIKE 'Ан%';
-- Найти email-адреса в домене '@example.com'
SELECT * FROM contacts WHERE email LIKE '%@example.com';
-- Найти коды из 5 символов, где первые три 'ABC', а последний 'Z'
SELECT * FROM products WHERE product_code LIKE 'ABC_Z';
-- Найти названия, содержащие подстроку 'test' в любом месте
SELECT * FROM documents WHERE title LIKE '%test%';
Важные замечания:
- Производительность: Использование
LIKE, особенно с шаблоном, начинающимся на%(например,'%строка'), может быть медленным на больших таблицах, так как часто не позволяет использовать обычные индексы. Для полнотекстового поиска существуют специализированные средства (например, полнотекстовые индексы). - Регистр: Поведение зависит от СУБД и настроек collation (сравнения). В PostgreSQL по умолчанию регистронезависимо, в SQLite — зависит от настроек, в MySQL можно использовать
LIKE BINARYдля регистрозависимого поиска. - Экранирование: Для поиска самих символов
%или_их необходимо экранировать (способ зависит от СУБД, часто с помощьюESCAPE).