当前位置:网站首页>Tips for extracting JSON fields from MySQL

Tips for extracting JSON fields from MySQL

2022-07-05 17:14:00 1024 questions

Catalog

mysql Take out json Field skills

mysql Using functions in JSON_EXTRACT()

spark sql Use in get_json_object()

mysql take json, In don't know key Under the circumstances , Take his value Detailed value

mysql Take out json Field skills

Sometimes some information will be written in json Forms exist in the database , If it's too long , In the process of taking sql It will run slower , If you only take some key values, it will be more wasteful

mysql Using functions in 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 Use in 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 take json, In don't know key Under the circumstances , Take his value Detailed value { "selects" :{ "20071090" :{ "NN" : 41,"LXFS1" : "12365","GH" : "20071090","RZZW" : " Director of General Office ","sxzym" : " Garden plants and ornamental gardening ","ZC" : " associate professor ","XGW" : " Administration and logistics ","XB" : " male ","ZZMM" : " Party members ","ZWZC" : " Senior title ","MZ" : " han ","CSRQ" : 307123200000,"XL" : " master ","selectKey" : "20071090","XM" : " Zhang San ","GZBM" : " The office ","PZGW" : " Associate professor level III post ","XW" : " Master of Agriculture " }}}

In this mysql If you want to get a name in red under the database, the content is as shown in the above figure

Create view , Take the name of this field , Because of his key:"20071090" Is dynamic uncertainty , And it will only appear once in this place , First I take the first floor key==>selects The next value

SELECT ZDLSXM->'$.selects' from VI_YXGR

On this basis , Take down another layer , Because this layer is dynamic key, Cannot use the first step   ZDLSXM->'$.selects' That way , So I choose substring_index Method Remove the braces , Reuse CONCAT() Splicing becomes new json, Delete the red part of the following icon

SELECT CONCAT("{",substring_index(substring_index(ZDLSXM->'$.selects', '{', -1),"}",1),"}") from VI_YXGR

  Another layer of packaging can take the name

SELECT SE_ZDLSXM->'$.name' AS ZDLSXM from (SELECT CONCAT("{",substring_index(substring_index(ZDLSXM->'$.selects', '{', -1),"}",1),"}") as SE_ZDLSXM from VI_YXGR) sss

The above is personal experience , I hope I can give you a reference , I also hope you can support the software development network .


原网站

版权声明
本文为[1024 questions]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207051641540755.html