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

DuckDB中如何筛选数组包含指定值的行?

解决PostgreSQL数组字段包含指定值的查询问题

要筛选出my_array字段中包含至少一个'My Term'值的行,你可以用以下两种有效方法:

方法1:使用ANY操作符

这是最常用的方式,直接检查目标值是否匹配数组中的任意元素:

SELECT * FROM my_table WHERE 'My Term' = ANY(my_array);

方法2:使用数组包含操作符@>

将目标值转为数组形式,检查字段数组是否包含该单元素数组:

SELECT * FROM my_table WHERE my_array @> ARRAY['My Term']::VARCHAR[];

你之前的语句无效的原因:

  • SELECT * FROM my_table WHERE my_array='My Term';:将整个数组字段与字符串直接相等比较,只有当数组本身是仅包含'My Term'的单元素数组时才会匹配,不符合需求。
  • SELECT * FROM my_table WHERE 'My Term' IN my_array;:语法错误,IN关键字后需要括号包裹的集合(比如子查询结果或明确列举的值),不能直接跟数组类型字段。

内容的提问来源于stack exchange,提问作者Jason Norwood-Young

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:34:53