如何使用postgresql JSON,其中键是任意的?

我在表t1中有一个
JSON字段c1,它是一种形式

{
 "11111" : { "STATUS" : "1"},
 "22222" : { "STATUS" : "0"},
 "33333" : { "STATUS" : "0"}
}

我想找到那些任何键状态为1的t1行,我试过下面的命令

with r1 as(select t1.*, json_object_keys(c1) as keys from t1) select * from r1 where r1.c1->keys->>'STATUS' = '1'; 

但它没有给我任何排?

最佳答案

select *
from t1
where exists (
    select 1
    from json_each(c1)
    where value ->> 'STATUS' = '1'
)
点赞