LIKE в PostgreSQL: поиск по шаблону

Оператор 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%';

Этот запрос найдёт все записи, не учитывая регистр.