You need to enable JavaScript to run this app. PostgreSQL查询jsonb字段指定属性返回null的问题求助
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL查询jsonb字段指定属性返回null的问题求助

查询返回null的核心问题
  • 你存储在service_groups字段的jsonb内容根节点是json数组(以[]包裹),并非直接的键值对对象
  • 原语句service_groups->>'total_amount'是尝试从json根节点(即这个数组)中查找total_amount键,数组本身不存在该顶层键,因此查询结果返回null
修正后的查询语句

针对你给出的原始json结构(数组内仅1个带total_amount的元素),正确写法需要先取出数组中对应下标的元素,再提取字段值:

SELECT id, service_groups->0->>'total_amount' as pricing 
FROM data_table 
WHERE id = 'ef5d5366-f049-4d88-8f03-1f7c0faeeb8d'
补充说明
  • ->0操作符的作用是从json数组中取出下标为0的第一个元素(也就是你存储的包含total_amount的对象)
  • 如果需要提取的是数值类型而非字符串,可以对结果做类型转换:
    SELECT id, (service_groups->0->>'total_amount')::numeric as pricing 
    FROM data_table 
    WHERE id = 'ef5d5366-f049-4d88-8f03-1f7c0faeeb8d'
    
  • 如果后续数组内可能存在多个元素,可根据业务场景调整下标值,或配合jsonb_array_elements函数展开数组后再提取字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 10:36:06