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

SQL中同时使用LIKE与ANY实现文本数组元素模糊匹配查询问题

错误原因说明

你原有的SQL无法执行主要有两个核心问题:

  • PostgreSQL 中字符串拼接使用的运算符是 || 而非 +
  • ANY 关键字不能直接和拼接表达式组合后作为 LIKE 语法的匹配项,需要先完成数组元素的通配符拼接再做匹配

正确实现方式

写法1:EXISTS + unnest 拆解数组(兼容性最好,全版本支持)

这种写法逻辑直观,也方便后续加额外的匹配规则:

SELECT * 
FROM myTable 
WHERE EXISTS (
    SELECT 1 
    FROM unnest(args) AS arg_item 
    WHERE feature LIKE '%' || arg_item || '%'
);

如果需要大小写不敏感的匹配,把LIKE替换为ILIKE即可。

写法2:LIKE ANY 预加工数组(写法更简洁)

先把数组内所有元素都拼接前后通配符,再直接用LIKE ANY判断:

SELECT * 
FROM myTable 
WHERE feature LIKE ANY (
    ARRAY(SELECT '%' || elem || '%' FROM unnest(args) AS elem)
);

内容的提问来源于stack exchange,提问作者Евгения Рубанова

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:27:07