在Postgre的WHERE中使用正则expression式
我目前有以下查询:
select regexp_matches(name, 'foo') from table;
我怎样才能重写这个正则expression式就像下面这样(不工作):
select * from table where regexp_matches(name, 'foo');
当前的错误信息是:错误:WHERE的参数必须是布尔types,而不是typestext [] SQL状态:42804字符:29
写:
select * from table where name ~ 'foo'
'〜'运算符为正则expression式是否匹配产生布尔结果,而不是提取匹配的子组。
只需使用匹配运算符:
select * from table where name ~ 'foo';