基于jsonb列的查询

时间:2019-05-24 16:39:40

标签: postgresql jsonb

我有一个表,其中有一个jsonb列(称为info),该列具有两种类型的形状:有时是一个对象,有时是一个对象数组。

只要该jsonb列为数组并且其中一个对象的'id'属性等于10,我希望能够获得该表中的所有行。

所以,这就是我尝试过的:

select * from users
CROSS JOIN LATERAL jsonb_array_elements(users.info) users_info
WHERE users_info->>'id' = 10

这不起作用,因为如果值是一个对象而不是一个数组,jsonb_array_elements将会爆炸。我该如何实现?

0 个答案:

没有答案