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

PostgreSQL筛选数组列不包含指定值列表的行

在PostgreSQL中筛选不包含指定值的数组列行

假设你的表名为your_table,示例数据如下:

Id   Subjects
1    [English, SST]
2    [Science, Maths]
3    [Hindi, Sanskrit]

要筛选出Subjects列不包含English、Hindi、Sanskrit中任意值的行,可以使用PostgreSQL的数组重叠操作符&&,结合NOT实现:

SELECT id, subjects
FROM your_table
WHERE NOT subjects && ARRAY['English', 'Hindi', 'Sanskrit']::text[];

说明

  • &&操作符用于检测两个数组是否存在交集(即有共同元素)。
  • NOT取反后,会保留与指定数组无任何共同元素的行,正好匹配你的需求,运行后会返回Id=2的行。

忽略大小写的场景

如果你的数据存在大小写不一致的情况(比如示例中的Hindi和查询条件里的hindi),可以通过转小写统一匹配:

SELECT id, subjects
FROM your_table
WHERE NOT lower(subjects::text)::text[] && ARRAY['english', 'hindi', 'sanskrit']::text[];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:42:11