Mysql5.7 + 查询并解析json数据方法(后转)

文章介绍了在MySQL5.7中如何使用JSON_EXTRACT函数来查询和解析包含数组的JSON数据,特别是提取数组中特定元素的值。示例展示了如何获取所有子元素的价格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:本文是对  Mysql5.7 + 查询并解析json数据方法   的补充说明

具体请点击查看  

当前,也可以认为就是水贴

对于某个属性的值未数组的时候,我们取某一条中某一条某个元素,大家应该都理解了,具体

如下(详情请看上一篇   Mysql5.7 + 查询并解析json数据方法):

SELECT
  JSON_EXTRACT(
    '{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
    '$.ladderConfig'
  )
FROM
  DUAL

SELECT
JSON_EXTRACT(
  JSON_EXTRACT(
    '{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
    '$.ladderConfig'
  ),'$[0]')
FROM
  DUAL

但是 我就想获取所有的子元素中某个元素的值,那该怎么取呢?

如下

SELECT
 
  JSON_EXTRACT(
    '{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
    '$.ladderConfig[*].price'
  )
FROM
  DUAL

当然,前后带[]符号也很好解决啊 直接替换

 SELECT
 REPLACE(
 REPLACE(
  JSON_EXTRACT(
    '{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
    '$.ladderConfig[*].price'
  ),'[',''),']','')
FROM
  DUAL
 

这样是不是理解了?  就是我们取到数据了 那就可以为所欲为了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值