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
相关问题
mysql数据类型使用int类型和string类型
745浏览 • 1回复 待解决
如何部署PolarDB for PostgreSQL
1963浏览 • 1回复 待解决
关于SQL查询两个表查询
1301浏览 • 1回复 待解决
鸿蒙int类型转为Color类型怎么转?
6679浏览 • 4回复 已解决
PostgreSQL WHERE 计数条件
1225浏览 • 2回复 待解决
ArkTS如何读取本地json
4392浏览 • 1回复 待解决
postgresql 如何插入含 ‘ 数据?
2003浏览 • 2回复 待解决
API 版本适配config.json
5117浏览 • 1回复 待解决
鸿蒙pattern.json怎么使用?
5271浏览 • 4回复 待解决