Оператор LIKE в PostgreSQL используется для поиска и фильтрации текстовых данных по заданному шаблону. Он позволяет выполнять гибкий поиск по строкам с использованием специальных символов.
Синтаксис оператора LIKE
Общий синтаксис оператора выглядит следующим образом:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE шаблон;Специальные символы для LIKE
%— заменяет любое количество символов (включая ноль)._— заменяет ровно один любой символ.
Примеры использования LIKE
Простой поиск по началу строки
Поиск всех записей, начинающихся с определённых символов:
SELECT * FROM products
WHERE product_name LIKE 'Apple%';Этот запрос вернёт продукты, название которых начинается на «Apple».
Поиск по окончанию строки
Запрос, возвращающий записи, заканчивающиеся определённой строкой:
SELECT * FROM users
WHERE email LIKE '%@example.com';Поиск по части строки
Запрос, который ищет совпадения внутри текста:
SELECT * FROM books
WHERE title LIKE '%database%';Использование символа _
Пример поиска строк определённой длины:
SELECT * FROM customers
WHERE postcode LIKE '1234_';Этот запрос найдёт строки с почтовыми индексами, начинающимися с «1234» и состоящими ровно из 5 символов.
Использование NOT LIKE
Оператор NOT LIKE применяется для исключения строк, подходящих под заданный шаблон:
SELECT * FROM products
WHERE product_name NOT LIKE '%old';Этот запрос исключает из выборки товары, названия которых заканчиваются на «old».
Регистронезависимый поиск (ILIKE)
PostgreSQL предлагает оператор ILIKE для регистронезависимого поиска:
SELECT * FROM users
WHERE username ILIKE 'admin%';Этот запрос найдёт все записи, не учитывая регистр.