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

如何在PostgreSQL中编写含IN运算符的JSONPath过滤谓词

PostgreSQL JSONPath 实现 IN 语义的正确写法

你原来的等值校验语句没问题,但PostgreSQL的JSONPath语法不支持IN [数组]这种写法,得换成下面两种符合语法规范的写法,同时完全保留你原有查询结构:

写法一:使用in() 运算符

直接用圆括号包裹目标值列表,这是JSONPath标准的范围判断写法:

du.data @@ '$.some.data[*].** ? (@.propertyid == "1").anotherprop in ("SomeValue", "anotherValue")'

写法二:使用= any() 配合数组字面量

如果偏好数组形式的写法,可以用any()函数来匹配数组中的任意值:

du.data @@ '$.some.data[*].** ? (@.propertyid == "1").anotherprop = any(["SomeValue", "anotherValue"])'

这两种写法都能实现你要的“校验anotherprop是否在指定值列表中”的逻辑,而且完全兼容原有查询结构,不用调整整体生成规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:02:09