Подтвердить что ты не робот

Использование регулярного выражения в WHERE в Postgres

В настоящее время у меня есть следующий запрос:

select regexp_matches(name, 'foo') from table;

Как я могу переписать это так, чтобы регулярное выражение находилось в следующем виде (не работает):

select * from table where regexp_matches(name, 'foo');

Текущее сообщение об ошибке: ERROR: аргумент WHERE должен иметь тип boolean, а не текст типа [] Состояние SQL: 42804 Персонаж: 29

4b9b3361

Ответ 1

Вместо этого напишите

select * from table where name ~ 'foo'

Оператор '~' создает логический результат для того, соответствует ли регулярное выражение или нет, а не извлекает соответствующие подгруппы.

Ответ 2

Просто используйте оператор соответствия:

select * from table where name ~ 'foo';