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

如何在jsonb列中按条件筛选指定键值对(source=270)

PostgreSQL JSONB列筛选指定source值的键值对

假设你的表名为your_table,存储JSON数组的JSONB列名为your_jsonb_column,可以用以下两种方式实现需求:

方法1:展开数组后筛选

使用jsonb_array_elements将JSON数组拆分为单个对象,再筛选source值为270的条目:

SELECT elem
FROM your_table,
     jsonb_array_elements(your_jsonb_column) AS elem
WHERE (elem->'source')::integer = 270;

或者通过字符串比较(适用于数字格式的字符串值):

SELECT elem
FROM your_table,
     jsonb_array_elements(your_jsonb_column) AS elem
WHERE elem->>'source' = '270';

方法2:使用JSON路径查询

利用jsonb_path_query直接通过路径表达式筛选,语法更简洁:

SELECT jsonb_path_query(your_jsonb_column, '$[*] ? (@.source == 270)') AS result
FROM your_table;

以上两种查询都会返回目标结果:{"source": 270, "target": 285}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:48:23