欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL 5.7 关于 JSON 类型的子集Key/Value获取方法分享

程序员文章站 2022-03-12 12:31:36
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 

的确获取到了值,可值是有问题的

MySQL 5.7 关于 JSON 类型的子集Key/Value获取方法分享

可以从上面的图片看出,多了[],还有双引号…

双引号可以用 JSON_UNQUOTE 解决,但 [ ] 该怎么解决呢?

通过嵌套 json_extract 解决

select json_extract(json_extract(`data`, '$.createActivity'), '$.content')  from table 

MySQL 5.7 关于 JSON 类型的子集Key/Value获取方法分享

好了,今天就分享到这里,如果还有什么好方法,欢迎提出来

本文地址:https://blog.csdn.net/Fyf_010316/article/details/107418609

相关标签: MySQL