当前位置:网站首页> 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 
以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。
边栏推荐
- Timestamp strtotime the day before or after the date
- winedt常用快捷键 修改快捷键latex编译按钮
- Embedded -arm (bare board development) -1
- 启牛商学院股票开户安全吗?靠谱吗?
- 中国广电正式推出5G服务,中国移动赶紧推出免费服务挽留用户
- 外盘期货平台如何辨别正规安全?
- 干货!半监督预训练对话模型 SPACE
- [Jianzhi offer] 61 Shunzi in playing cards
- WSL2.0安装
- China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
猜你喜欢

Scratch colorful candied haws Electronic Society graphical programming scratch grade examination level 3 true questions and answers analysis June 2022

thinkphp3.2.3

ternary operator
![[Web attack and Defense] WAF detection technology map](/img/7c/60a25764950668ae454b2bc08fe57e.png)
[Web attack and Defense] WAF detection technology map

NPM installation

深潜Kotlin协程(二十一):Flow 生命周期函数

采用药丸屏的iPhone14或引发中国消费者的热烈抢购

Jarvis OJ Flag

composer安装报错:No composer.lock file present.

ECU introduction
随机推荐
一个满分的项目文档是如何书写的|得物技术
easyNmon使用汇总
Judge whether a number is a prime number (prime number)
[729. My schedule I]
Deep dive kotlin synergy (XXI): flow life cycle function
The first EMQ in China joined Amazon cloud technology's "startup acceleration - global partner network program"
Browser rendering principle and rearrangement and redrawing
【729. 我的日程安排表 I】
Embedded UC (UNIX System Advanced Programming) -3
Jarvis OJ Telnet Protocol
張平安:加快雲上數字創新,共建產業智慧生態
手机开证券账户安全吗?怎么买股票详细步骤
Little knowledge about C language (array and string)
【剑指 Offer】61. 扑克牌中的顺子
7.Scala类
【beanshell】数据写入本地多种方法
ternary operator
Excuse me, is the redis syntax used in DMS based on the commands of the redis community version of the cloud database
Use JDBC technology and MySQL database management system to realize the function of course management, including adding, modifying, querying and deleting course information.
CMake教程Step3(添加库的使用要求)