sql - 如何使用任意键的 postgresql JSON?

标签 sql json postgresql postgresql-9.3

我在表 t1 中有一个 JSON 字段 c1,其格式为

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

我想找到 t1 中任何键状态为 1 的行,我已经尝试了以下命令

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'
)

关于sql - 如何使用任意键的 postgresql JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21719747/

相关文章:

mysql - 两个 MySQL 表的复杂连接

sql - Postgres 中的 NOCYCLE

Java Jackson 序列化器获取变量名称

javascript - 如何使用 YouTube API 将视频观看次数获取到 Google 电子表格中?

postgresql - 在 View 中使用 hstore 比较转储和恢复 PostgreSQL 数据库失败

sql - 只要事务尚未提交,SQL Server 是否允许事务中出现约束违规?

json - 谷歌云功能 : Return valid JSON

ruby-on-rails - Rails 3 - Heroku - 数据类型二进制问题 - 在本地而不是在 Heroku 上工作,调试建议?

postgresql - 总和 HH :mm in PostgreSQL

MySQL-使用 MAX 查询 GROUP_CONCAT 中的加密值