Mysql如何获取json字符串/数组的值!

Mysql如何获取json字符串/数组的值!

这篇文章主要介绍了Mysql如何获取json字符串/数组的值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教。

Mysql获取json字符串/数组的值

单个json的,获取值使用json_extract

1
`select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel`");

数组的json的,获取数组的长度使用JSON_LENGTH

1
SELECT id,JSON_LENGTH('[{"id":"10000004555096","name":"1.docx"},{"id":"10000004555098","name":"2.doc"},{"id":"10000004555097","name":"3.html"}]'),F_zwm,F_dhhm FROM `w_b01rzcllc` limit 10;

数组的json的,获取数组的值使用json_extract

1
SELECT id,json_extract('[{"id":"10000004555096","name":"1.docx"},{"id":"10000004555098","name":"2.doc"},{"id":"10000004555097","name":"3.html"}]',"$[0].name"),F_zwm,F_dhhm FROM `w_b01rzcllc` limit 10;

Mysql获取 json字段中指定的值 ( MySQL 5.7 上下两种方式 )

JSON:

1
2
3
4
5
6
7
8
9
10
11
12
{
"success": true,
"code": 0,
"msg": "操作成功",
"data": {
"access_token": "333d8c09-e522-4585-8cca-1d9c66e5cece",
"token_type": "bearer",
"refresh_token": "48a3e598-0e3e-4739-9e57-b301c1e3529d",
"expires_in": 3599,
"scope": "app"
}
}

MySQL 5.7 以上可直接使用函数 JSON_EXTRACT 获取

1
2
select replace(json_extract(remark, '$.data.budgetNum'), '"', '')
from sys_user;

结果:

202408090839531

MySQL 5.7 以下可利用分割函数进行获取

1
2
3
4
5
6
7
8
select REPLACE(
remark,
CONCAT(
SUBSTRING_INDEX(remark, '"access_token":', 1),
'"access_token":"'
),
''
) from sys_user;

总结

以上为个人经验,希望能给大家一个参考。

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

电商数据分析360°实战攻略!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

阅读剩余
THE END