В PostgreSQL есть несколько средств поиска текста по шаблону. Наиболее часто используемый оператор LIKE
языка SQL
:
строка LIKE шаблон
В шаблоне LIKE
можно использовать два спецсимвола
_
- заменяет один любой символ;%
- заменяет любую последовательность символов (в том числе пустую)
Несколько примеров:
'abc' LIKE 'abc' true
'abc' LIKE 'a%' true
'abc' LIKE '_b_' true
'abc' LIKE 'c' false
При проверке по шаблону LIKE
всегда рассматривается вся строка. Поэтому, если нужно найти последовательность символов где-то в середине строки, шаблон должен начинаться и заканчиваться знаком %
.
Чтобы найти в строке буквальное вхождение знака процента или подчёркивания, перед соответствующим символом в шаблоне нужно добавить спецсимвол. По умолчанию в качестве спецсимвола выбрана обратная косая черта \
, но с помощью предложения ESCAPE
можно выбрать и другой. Чтобы включить спецсимвол в шаблон поиска, продублируйте его. Синтаксис LIKE
с указанием спецсимвола:
строка LIKE шаблон ESCAPE спецсимвол
например
'_asdfa' LIKE '$_asd%' ESCAPE '$'
Вместо LIKE
можно использовать ключевое слово ILIKE
, чтобы поиск был регистр-независимым с учётом текущей языковой среды.