MYSQL 直接解析json

MySQL 5.7版本以后支持json格式的字段类型定义、存储和使用,最近做BI开发,开发把所需数据用JSON的形式存储在字段中,本次记录下MySQL解析JSON。

 

环境:MySQL 8.0

角色:root

 

参考:

https://dev.mysql.com/doc/refman/8.0/en/json.html

 

一般来说,主要是提取json字段的值,所以update就不写了,提取select json使用的参数是:

 JSON_EXTRACT

 

JSON_EXTRACT参数使用方式是:JSON_EXTRACT(json串,'$.key'),select后得到的是key值对应的value;

那么,如何解释$

$,指得是json串,这里的json串,是$之前的变量;例如:

JSON_EXTRACT('{1:0,2:0}','$.key')这里$.key的$指的是他前面的{1:0,2:0}

JSON_EXTRACT(JSON_EXTRACT('{1:0,2:0}','$.1'),'$.key')

这里$.key的$指的是他前面的JSON_EXTRACT('{1:0,2:0}','$.1'),

 

如果有多层嵌套的js

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL可以使用JSON_EXTRACT函数来解析JSON数据。对于JSON对象,可以使用JSON_EXTRACT(json列, '$.键')来获取指定键的值。对于JSON数组,可以使用JSON_EXTRACT(json列, '$\[index\].键')来获取指定索引位置的键的值。例如,如果有一个表名为prptable,其中包含一个名为requestbody的JSON列,可以使用以下语句来解析JSON数据: SELECT JSON_EXTRACT(requestbody, '$.字段名') FROM prptable; 其中,字段名是JSON中的键名。如果要获取JSON数组中的某个字段的值,可以使用类似的语法,只需将索引位置和键名替换为实际的值。例如: SELECT JSON_EXTRACT(requestbody, '$\[0\].字段名') FROM prptable; 这将返回JSON数组中第一个元素的指定字段的值。请注意,JSON_EXTRACT函数还可以与其他SQL语句一起使用,以满足特定的查询需求。 #### 引用[.reference_title] - *1* *2* [MySQL解析JSON格式](https://blog.csdn.net/weixin_44961626/article/details/128215756)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MYSQL解析json格式数据](https://blog.csdn.net/billxin0621/article/details/130528416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值