返回行通过在阵列jsonb对象滤波

问题描述 投票:2回答:1

我有一个表叫houses,它有两列id并呼吁details一个jsonb列。该details列具有以下结构:

[{ kind: "flat", price: 100 }, { kind: "circle", price: 10 }]

我想所有这些houses塔具有至少一个对象,其中detailskindflat

这是我曾尝试:

select *
FROM houses
WHERE "details"->>'kind' = 'flat'
sql postgresql where jsonb
1个回答
1
投票

您可以使用jsonb_array_elements

select h.*  from houses h cross join lateral 
    jsonb_array_elements(details) as j
where j->>'kind' = 'flat'

Demo

© www.soinside.com 2019 - 2024. All rights reserved.