Оператор 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%';
Этот запрос найдёт все записи, не учитывая регистр.