Ответ 1
Вместо этого напишите
select * from table where name ~ 'foo'
Оператор '~' создает логический результат для того, соответствует ли регулярное выражение или нет, а не извлекает соответствующие подгруппы.
В настоящее время у меня есть следующий запрос:
select regexp_matches(name, 'foo') from table;
Как я могу переписать это так, чтобы регулярное выражение находилось в следующем виде (не работает):
select * from table where regexp_matches(name, 'foo');
Текущее сообщение об ошибке: ERROR: аргумент WHERE должен иметь тип boolean, а не текст типа [] Состояние SQL: 42804 Персонаж: 29
Вместо этого напишите
select * from table where name ~ 'foo'
Оператор '~' создает логический результат для того, соответствует ли регулярное выражение или нет, а не извлекает соответствующие подгруппы.
Просто используйте оператор соответствия:
select * from table where name ~ 'foo';