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

PostgreSQL JSONB查询:获取指定unit对应的quantity值

解决PostgreSQL JSONB数组过滤问题

你需要在查询的WHERE子句中添加数组元素的过滤条件,同时修正原查询里的字段引用错误(原语句中t.value->'storage'应为t.data->'storage',因为表的JSONB字段名为data)。

修改后的查询语句如下:

SELECT product_id, e -> 'quantity' as quant 
FROM Products t, 
     jsonb_array_elements(t.data->'storage') e 
WHERE product_id = '00445'
  AND e ->>'unit' = 'one';

关键说明:

  • e ->>'unit' 用于提取JSONB元素中unit字段的文本值(->>返回文本类型,能直接和字符串'one'做等值比较;若用->会返回JSONB类型,需额外处理)
  • 过滤条件e ->>'unit' = 'one'会只保留数组中unit为"one"的元素
  • 原查询中(product_id) IN (('00445'))可简化为product_id = '00445',逻辑一致且更简洁

执行该查询后,将得到目标结果:

product_idquant
004453

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:45:24