MySQL 5.7 关于 JSON 类型的子集Key/Value获取方法分享
程序员文章站
2023-12-31 12:29:16
MySQL 5.7 开始支持存储JSON类型的数据,今天遇到了一个问题,获取JSON子集里的 KEY 时出现的{"createActivity": {"content": "这是我第一篇动态","agreeCount": 0,"shareCount": 0,"againstCount": 0,"commentCount": 0}}下面我们想获取 Key 为 content 的值mysql提供了获取key的函数 json_extract(json字段, $.ke...
MySQL 5.7 开始支持存储JSON类型的数据,今天遇到了一个问题,获取JSON子集里的 KEY 时出现的
{
"createActivity": {
"content": "这是我第一篇动态",
"agreeCount": 0,
"shareCount": 0,
"againstCount": 0,
"commentCount": 0
}
}
下面我们想获取 Key 为 content
的值
mysql提供了获取key的函数 json_extract(json字段, $.key)
下面这段sql 只能获取 createActivity
这个级别的Key
select json_extract(`data`, '$.content') from table
如果想获取到 content
, 得下面这样写
select json_extract(`data`, '$**.content') from table
的确获取到了值,可值是有问题的
可以从上面的图片看出,多了[],还有双引号…
双引号可以用 JSON_UNQUOTE
解决,但 [ ] 该怎么解决呢?
通过嵌套 json_extract 解决
select json_extract(json_extract(`data`, '$.createActivity'), '$.content') from table
好了,今天就分享到这里,如果还有什么好方法,欢迎提出来
本文地址:https://blog.csdn.net/Fyf_010316/article/details/107418609