我目前有以下查询:
select regexp_matches(name, 'foo') from table;
如何重写这一点,以便正则表达式位于以下位置(不工作):
select * from table where regexp_matches(name, 'foo');
当前错误消息是: 错误:WHERE的参数必须是boolean类型,而不是type text [] SQL状态:42804 性格:29
答案 0 :(得分:117)
改为写:
select * from table where name ~ 'foo'
'〜'运算符产生一个布尔结果,表示正则表达式是否匹配,而不是提取匹配的子组。
答案 1 :(得分:40)
在那里使用匹配运算符:
select * from table where name ~ 'foo';