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"
    }
]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

请问:怎么查询 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选项';
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
分享
微博
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
相关问题
如何查询设备类型?有人知道吗?
964浏览 • 1回复 待解决
HarmonyOS json对象转map类型
893浏览 • 1回复 待解决
HarmonyOS JSON.parse 返回类型问题
1391浏览 • 1回复 待解决
Map类型怎么转换成Json string
2833浏览 • 1回复 待解决
HarmonyOS string.json中如何定义数组类型
554浏览 • 1回复 待解决
如何部署PolarDB for PostgreSQL
4782浏览 • 1回复 待解决
postgresql 如何插入含 ‘ 数据?
4197浏览 • 2回复 待解决
PostgreSQL WHERE 计数条件
3305浏览 • 2回复 待解决