Вы можете использовать оператор ~
для выполнения выражения, подобного регулярному выражению.Например, допустим, у вас есть следующие значения:
'abc'
'qabc'
'ptestp'
'sometext'
'oneone'
Если вы хотите выбрать только те, которые содержат abc
или test
, вы можете выполнить следующий запрос:
SELECT * FROM (VALUES ('abc'),
('qabc'),
('ptestp'),
('sometext'),
('oneone'))
example_data(label)
WHERE label ~ 'abc|test';
При этом будут выбраны только следующие значения: abc
, qabc
, ptestp
.
Помните, что оператор ~
принимает регулярное выражение справа, поэтому вы можете использовать любоетипы шаблонов (например, полное совпадение, совпадение в начале слова, в конце слова и т. д.).
Например, следующий запрос:
SELECT * FROM (VALUES ('abc'),
('abcc'),
('ptestp'),
('sometext'),
('oneone'))
example_data(label)
WHERE label ~ '^abc$|^test$';
Выберет толькопервая строка (abc
), так как требует, чтобы слова полностью совпадали.