在 Postgres 的 WHERE 中使用 regex

我目前有以下问题:

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

我如何重写这个,使正则表达式在下面这样的地方(不工作) :

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

当前的错误消息是: 错误: WHERE 的参数必须键入 boolean,而不是键入 text [] SQL 状态: 42804 角色: 29

92826 次浏览

Write instead:

select * from table where name ~ 'foo'

The '~' operator produces a boolean result for whether the regex matches or not rather than extracting the matching subgroups.