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

PostgreSQL中如何查询events表jsonb字段的指定键并返回结果?

PostgreSQL 提取JSONB字段指定键的查询方案

针对你给出的events表结构和需求,这里提供几种实用的PostgreSQL查询方法,都能实现返回仅包含指定键的data字段:

方法1:构造新JSONB对象(推荐多键场景)

使用jsonb_build_object函数,直接指定要保留的键并提取对应值,生成仅含目标键的新JSONB:

SELECT 
  id,
  jsonb_build_object('b', data->'b') AS data
FROM events
WHERE id = 1;

如果需要保留多个键(比如同时保留a和b),只需要扩展函数参数:

jsonb_build_object('a', data->'a', 'b', data->'b')

方法2:移除不需要的键(推荐少键移除场景)

如果要保留的键数量多,仅需删除少数键,用-操作符直接移除不需要的键:

SELECT 
  id,
  data - 'a' AS data
FROM events
WHERE id = 1;

要删除多个键的话,可传入数组形式:

data - ARRAY['a', 'c']

方法3:提取指定键的专用函数

使用jsonb_extract_path函数,直接提取指定键对应的JSONB片段:

SELECT 
  id,
  jsonb_extract_path(data, 'b') AS data
FROM events
WHERE id = 1;

支持同时提取多个键,只需依次传入键名:

jsonb_extract_path(data, 'a', 'b')

以上三种方法执行后,都会得到你期望的结果:

id | data
1  | {"b": 2}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:55:16