繁体   English   中英

如何从 PostgreSQL 中的 JSONB 数组中获取特定对象值?

[英]How to get specific objects value from JSONB array in PostgreSQL?

我有一个名为people的列,它的类型是JSONB

这是示例数据( 1 行):

{"addresses": [{"street":"cubuklu", "valid?": "true"} 
               {"street":"beykoz", "valid?":"false"}
               {"street":"kavacik", "valid?": "true"} ]}

我想获得valid?街道的列表valid? 所有行的值。

结果:

cubuklu
kavacik
......(data from other rows)

我能够列出无法过滤值的数组。

您需要取消嵌套数组,然后对结果进行过滤:

select adr.address ->> 'street'
from the_table t
  cross join jsonb_array_elements(t.people -> 'addresses') as adr(address)
where adr.address ->> 'valid?' = 'true'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM