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

postgresql
数据库
数据表
2022-09-06 13:22:04
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
先来一碗蛋炒饭
2

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

/* 先转换 options 这个 json 字段,然后再按一般查 json 的方法查询即可。 */
select * from (
    select id, title, json_array_elements(options) as data from question
) t
where data->>'option_title'::varchar = 'A选项';
分享
微博
QQ
微信
回复1
2022-09-06 15:03:51
pgdba

​JSON 函数和操作符​

​json​​​ ​​->​​​ ​​text​​​ → ​​json​

​jsonb​​ ​​->​​ ​​text​​ → ​​jsonb​

用给定的键提取JSON对象字段。

​'{"a": {"b":"foo"}}'::json -> 'a'​​ → ​​{"b":"foo"}​

分享
微博
QQ
微信
回复
2023-05-27 11:49:21
相关问题
HarmonyOS json对象转map类型
154浏览 • 1回复 待解决
如何查询设备类型?有人知道吗?
406浏览 • 1回复 待解决
HarmonyOS JSON.parse 返回类型问题
447浏览 • 1回复 待解决
Map类型怎么转换成Json string
2195浏览 • 1回复 待解决
如何部署PolarDB for PostgreSQL
4052浏览 • 1回复 待解决