You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PostgreSQL中使用ANY运算符时为何出现语法错误?

错误原因

PostgreSQL 中 ANY 运算符的语法要求操作数必须是数组类型,你当前的写法是将多个字符串直接用逗号分隔放在括号内,这不符合语法规范,数据库无法解析这种格式,因此触发逗号位置的语法错误。

解决方法

修正 ANY 的参数格式,用数组构造器 ARRAY[] 包裹目标字符串列表即可,完整修正后的查询语句如下:

select distinct rest
from restraunts
where friends ilike any (ARRAY['Micheal','Martin','Jack']) and rest ilike any (ARRAY['Ofelia','Casablanca']);

另外,如果你只是需要简单的多值模糊匹配,也可以用多个 ILIKE 结合 OR 的写法(效果和上述语句一致):

select distinct rest
from restraunts
where (friends ilike 'Micheal' or friends ilike 'Martin' or friends ilike 'Jack') 
  and (rest ilike 'Ofelia' or rest ilike 'Casablanca');

不过第一种用 ANY + ARRAY 的写法更简洁,尤其是当匹配值较多时。

内容的提问来源于stack exchange,提问作者Ecem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:54:52