在Postgres中的WHERE中使用正则表达式

时间:2011-02-09 13:27:03

标签: regex postgresql

我目前有以下查询:

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

如何重写这一点,以便正则表达式位于以下位置(不工作):

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

当前错误消息是: 错误:WHERE的参数必须是boolean类型,而不是type text [] SQL状态:42804 性格:29

2 个答案:

答案 0 :(得分:117)

改为写:

select * from table where name ~ 'foo'

'〜'运算符产生一个布尔结果,表示正则表达式是否匹配,而不是提取匹配的子组。

答案 1 :(得分:40)

在那里使用匹配运算符:

select * from table where name ~ 'foo';