我目前有以下查询:
select regexp_matches(name, 'foo') from table;
我该如何重写它,以便正则表达式位于如下所示的位置(不起作用):
select * from table where regexp_matches(name, 'foo');
当前错误消息是:错误:WHERE的参数必须为布尔型,而不是text [] SQL状态:42804字符:29
Answers:
写:
select * from table where name ~ 'foo'
“〜”运算符针对正则表达式是否匹配产生布尔结果,而不是提取匹配的子组。
SELECT * FROM table WHERE name SIMILAR TO 'foo'
请参阅此处的文档以了解更多详细信息
~
正则表达式运算符,因为与SIMILAR TO相比,实现什么和不实现什么没有什么惊奇
只需在此处使用匹配运算符:
select * from table where name ~ 'foo';