关于mysql中的json解析函数JSON_EXTRACT
作者:Deng_7788 时间:2024-01-23 18:29:41
mysql json解析函数JSON_EXTRACT
MYSQl自带的解析函数JSON_EXTRACT,用JSON_EXTRACT函数解析出来的函数会包含双引号
例子
t_table表里面source字段是以json格式写的值为
{ "info" : { "color" : "白色", "inner_color" : "米色", "number" : "12345678", "registration_date" : "2012-11" },
"accessory" : [ "1", "4", "5", "6", "7", "8", "9", "10" ],
"remark" : "测试"}
查询color不去掉双引号,inner_color去掉双引号,remark去掉双引
select?
source->'$.info.color' ?as color,
replace(source->'$.info.inner_color','"','') ? as inner_color,
replace(source->'$.remark','"','') ? as remark
?from t_table
查询结果
color | inner_color | remark |
---|---|---|
“白色” | 米色 | 测试 |
mysql5.7 json格式与json_extract方法
数据初始化
json_test表数据,id和jsonstr字段(类型json)
{
"no": "7",
"title": "运动方式",
"content": [{
"text": "您平时经常进行的运动及时间",
"item1": [{
"text": "慢跑 / 快走 / 走跑结合",
"type": "select",
"value": "selected"
}, {
"text": "上下楼梯 / 爬山",
"type": "multselect",
"value": "selected"
}],
"item2": [{
"text": "慢跑222走跑结合",
"type": "text",
"value": "慢跑2"
}, {
"text": "上下楼梯 / 爬山2",
"type": "number",
"value": "33"
}]
}]
}
select语句
SELECT
? ? id,
? ? json_extract( t.jsonstr, '$.*' ),
? ? json_extract( t.jsonstr, '$.title' ) AS "title",
? ? json_extract( t.jsonstr, '$.content' ) AS "content" ,
? ? json_extract( t.jsonstr, '$**.text' ) AS "text" ,
? ? json_extract( t.jsonstr, '$.content[*].item1[*]' ) AS "item1"?
FROM
? ? json_test t;
返回结果解析
//json_extract( t.jsonstr, '$.*' )返回:
["7", "运动方式", [{"text": "您平时经常进行的运动及时间", "item1": [{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}], "item2": [{"text": "慢跑222走跑结合", "type": "text", "value": "慢跑2"}, {"text": "上下楼梯 / 爬山2", "type": "number", "value": "33"}]}]]
//json_extract( t.jsonstr, '$.title' ) AS "title"返回:
"运动方式"
//json_extract( t.jsonstr, '$.content' ) AS "content" 返回:
[{"text": "您平时经常进行的运动及时间", "item1": [{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}], "item2": [{"text": "慢跑222走跑结合", "type": "text", "value": "慢跑2"}, {"text": "上下楼梯 / 爬山2", "type": "number", "value": "33"}]}]
//json_extract( t.jsonstr, '$**.text' ) AS "text" 返回:
["您平时经常进行的运动及时间", "慢跑 / 快走 / 走跑结合", "上下楼梯 / 爬山", "慢跑222走跑结合", "上下楼梯 / 爬山2"]
//json_extract( t.jsonstr, '$.content[*].item1[*]' ) AS "item1" 返回:
[{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}]
用法解析
‘$.*’ | 返回全部json |
‘$.title’ | 返回key=”title”的数据 |
‘$**.text’ | 返回所有最底层key=”text”的数据 |
‘$.content[*].item1[*]’ | 返回key=content的list的key=item1的list的所有内容 |
官方文档:https://dev.mysql.com/doc/refman/5.7/en/json.html
来源:https://blog.csdn.net/Deng_7788/article/details/124711236
标签:mysql,json,JSON,EXTRACT
0
投稿
猜你喜欢
浅谈Oracle数据库的建模与设计
2010-07-20 12:55:00
python PaddleSpeech实现婴儿啼哭识别
2023-08-22 22:25:31
BootStrop前端框架入门教程详解
2024-04-29 13:46:10
细节设计之美:扩大可操作区域
2009-08-01 11:32:00
模拟实现 Range 的 insertNode() 方法
2010-11-30 21:39:00
详解Numpy扩充矩阵维度(np.expand_dims, np.newaxis)和删除维度(np.squeeze)的方法
2023-02-13 22:24:24
Python自动发送和收取邮件的方法
2023-10-09 17:58:56
试了下Golang实现try catch的方法
2023-07-21 20:49:59
three.js中文文档学习之创建场景
2023-08-22 21:02:00
MySQL的查询计划中ken_len的值计算方法
2024-01-24 13:32:49
python中二分查找法的实现方法
2023-02-02 16:19:16
Python中操作各种多媒体,视频、音频到图片的代码详解
2021-09-25 21:47:49
vue单页面在微信下只能分享落地页的解决方案
2024-05-09 10:52:19
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2021-04-12 15:06:27
python3实现简单飞机大战
2022-11-11 02:27:18
python同步windows和linux文件
2023-12-11 11:44:35
Python中的字典及其使用方法
2022-03-22 13:31:49
Python3爬虫关于识别检验滑动验证码的实例
2021-08-25 02:17:37
python实现的读取网页并分词功能示例
2022-05-08 07:06:38
基于golang channel实现的轻量级异步任务分发器示例代码
2024-05-08 10:13:09