当前位置:网站首页> mysql中取出json字段的小技巧
mysql中取出json字段的小技巧
2022-07-05 16:42:00 【1024问】
mysql取出json字段技巧
mysql中使用函数JSON_EXTRACT()
spark sql中使用get_json_object()
mysql取json,在不知道key情况下,取他的value详细值
mysql取出json字段技巧有时候会将一些信息以json形式存在数据库中,如果太长的话,在取的过程中sql运行会比较慢,如果只取某些键值的话会比较浪费
mysql中使用函数JSON_EXTRACT()±—±---------------------------------------------------------------+| id | data |±—±---------------------------------------------------------------+| 1 | {“Tel”: “132223232444”, “name”: “david”, “address”: “Beijing”} || 2 | {“Tel”: “13390989765”, “name”: “Mike”, “address”: “Guangzhou”} |±—±---------------------------------------------------------------+
select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel");
spark sql中使用get_json_object()select get_json_object(i.extra, '$.sale_currency');select sum(get_json_object(i.extra, '$.sale_price') * i.count) as sale_price;
mysql取json,在不知道key情况下,取他的value详细值{ "selects" :{ "20071090" :{ "NN" : 41,"LXFS1" : "12365","GH" : "20071090","RZZW" : "办公室主任","sxzym" : "园林植物与观赏园艺","ZC" : "副教授","XGW" : "行政管理后勤","XB" : "男","ZZMM" : "中共党员","ZWZC" : "高级职称","MZ" : "汉","CSRQ" : 307123200000,"XL" : "硕士","selectKey" : "20071090","XM" : "张三","GZBM" : "办公室","PZGW" : "副教授三级岗位","XW" : "农学硕士" }}}
在这个mysql数据库下想取一个姓名标红是如内容如上图
建立视图,取这个字段的姓名,由于他的key:"20071090" 是动态的不确定,而且在这个地方只会出现一次,首先我取第一层key==>selects下的值
SELECT ZDLSXM->'$.selects' from VI_YXGR
在这个基础上,再取下一层,由于这层是动态的key,不能使用第一步的 ZDLSXM->'$.selects' 那种方法,所以我选择substring_index 方法 去掉大括号的方式来,再使用CONCAT() 拼接成为新的json,如下图标红的地方删除掉
SELECT CONCAT("{",substring_index(substring_index(ZDLSXM->'$.selects', '{', -1),"}",1),"}") from VI_YXGR
再包装一层就可以取道这个名称了
SELECT SE_ZDLSXM->'$.name' AS ZDLSXM from (SELECT CONCAT("{",substring_index(substring_index(ZDLSXM->'$.selects', '{', -1),"}",1),"}") as SE_ZDLSXM from VI_YXGR) sss
以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。
边栏推荐
- Browser rendering principle and rearrangement and redrawing
- CMake教程Step4(安装和测试)
- 调查显示传统数据安全工具面对勒索软件攻击的失败率高达 60%
- 域名解析,反向域名解析nbtstat
- 【jmeter】jmeter脚本高级写法:接口自动化脚本内全部为变量,参数(参数可jenkins配置),函数等实现完整业务流测试
- Embedded UC (UNIX System Advanced Programming) -2
- Embedded -arm (bare board development) -1
- What else do you not know about new map()
- Etcd 构建高可用Etcd集群
- The first lesson of EasyX learning
猜你喜欢
Deeply cultivate 5g, and smart core continues to promote 5g applications
中国广电正式推出5G服务,中国移动赶紧推出免费服务挽留用户
Games101 notes (III)
【Web攻防】WAF检测技术图谱
China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
Embedded-c Language-1
Jarvis OJ Flag
飞桨EasyDL实操范例:工业零件划痕自动识别
干货!半监督预训练对话模型 SPACE
Embedded -arm (bare board development) -2
随机推荐
Jarvis OJ simple network management protocol
Explain in detail the functions and underlying implementation logic of the groups sets statement in SQL
Yarn common commands
【性能测试】全链路压测
Detailed explanation of printf() and scanf() functions of C language
阈值同态加密在隐私计算中的应用:解读
C# TCP如何设置心跳数据包,才显得优雅呢?
【beanshell】数据写入本地多种方法
[Jianzhi offer] 66 Build product array
Thoughtworks 全球CTO:按需求构建架构,过度工程只会“劳民伤财”
通过proc接口调试内核代码
[61dctf]fm
Etcd 构建高可用Etcd集群
C# TCP如何限制单个客户端的访问流量
American chips are no longer proud, and Chinese chips have successfully won the first place in emerging fields
麻烦问下,DMS中使用Redis语法是以云数据库Redis社区版的命令为参考的嘛
菜刀,蚁剑,冰蝎,哥斯拉的流量特征
Zhang Ping'an: accélérer l'innovation numérique dans le cloud et construire conjointement un écosystème industriel intelligent
[wechat applet] read the life cycle and route jump of the applet
Application of threshold homomorphic encryption in privacy Computing: Interpretation