PostgreSQL json 类型查询

数据表中有个字段 options 类型为 json.
这个字段中存储的数据如下:

[{
        "option_title" : "A选项",
        "score" : "1",
        "creation_date" : "2016-02-25T17:25:55+08:00"
    }, {
        "option_title" : "B选项",
        "score" : "0",
        "creation_date" : "2016-02-25T17:25:55+08:00"
    }, {
        "option_title" : "C选项",
        "score" : "0",
        "creation_date" : "2016-02-25T17:25:55+08:00"
    }, {
        "option_title" : "D选项",
        "score" : "0",
        "creation_date" : "2016-02-25T17:25:55+08:00"
    }
]

请问:怎么查询 option_title = "A选项" 的。
PostgreSQL 版本: 9.5

阅读 13.9k
1 个回答

好吧,自己昨天已经找到一个解决办法了。现在贴出来。

/* 先转换 options 这个 json 字段,然后再按一般查 json 的方法查询即可。 */
select * from (
    select id, title, json_array_elements(options) as data from question
) t
where data->>'option_title'::varchar = 'A选项';
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题