Return 行按数组中的 jsonb 对象过滤
Return rows filtering by jsonb object in array
我有一个名为 houses
的 table,它有两列 id
和一个名为 details
的 jsonb 列。 details
列具有以下结构:
[{ kind: "flat", price: 100 }, { kind: "circle", price: 10 }]
我想获取所有 houses
,其中 details
列至少有一个对象,其中 kind
是 flat
。
这是我试过的:
select *
FROM houses
WHERE "details"->>'kind' = 'flat'
您可以使用 jsonb_array_elements
select h.* from houses h cross join lateral
jsonb_array_elements(details) as j
where j->>'kind' = 'flat'
我有一个名为 houses
的 table,它有两列 id
和一个名为 details
的 jsonb 列。 details
列具有以下结构:
[{ kind: "flat", price: 100 }, { kind: "circle", price: 10 }]
我想获取所有 houses
,其中 details
列至少有一个对象,其中 kind
是 flat
。
这是我试过的:
select *
FROM houses
WHERE "details"->>'kind' = 'flat'
您可以使用 jsonb_array_elements
select h.* from houses h cross join lateral
jsonb_array_elements(details) as j
where j->>'kind' = 'flat'