mysql5.7+json多层数据查询

文章讲述了如何在MySQL中处理嵌套的JSON数据,特别是如何使用->和->>操作符来提取数据。->用于获取JSON对象的属性,而->>用于获取属性的字符串值。在处理需要进一步解析的JSON字段时,如couponList->couponInfo->gameInfo->outOrderId,必须使用->>来正确获取没有引号的值,以便进行后续操作。

目录

问题及目标

目标

问题

实施方法

参考文献


问题及目标

目标

mysql数据库的json数据嵌套多层,写入格式如下:

{
	"version": "2.0.0",
	"transCode": 10ss,
	"openId": "o04wsss1w",
	"accountNo": "1000sss25",
	"agentId": "xx0ss",
	"couponList": [{
		"couponNo": "204401430sss9",
		"couponAmount": 400,
		"expiryStartDate": "20sss0",
		"expiryEndDate": "2023xx959",
		"prizeType": 6,
		"prizeStatus": 0,
		"couponInfo": "{\"channelType\":1,\"couponNo\":\"2044xxx089\",\"countyCode\":\"\",\"activityId\":xxxx3,\"prizeId\":100xx9,\"transCode\":1xx1,\"gameInfo\":\"[{\\\"gameCategory\\\":2,\\\"gameId\\\":\\\"xx800\\\",\\\"gameNo\\\":\\\"85\\\",\\\"pickMethod\\\":\\\"1\\\",\\\"betCount\\\":\\\"2\\\",\\\"betMults\\\":\\\"1\\\",\\\"ifAdditional\\\":0}]\",\"couponAmount\":400,\"winTime\":\"20230xxx90142\",\"expiryStartDate\":\"2023xx0000\",\"expiryEndDate\":\"2023xx59\",\"description\":\"赠送xxx票一张!\",\"outOrderId\":\"1000002020xxx425879\",\"prizeType\":6,\"ifVerification\":1,\"prizeDetails\":\"仅限xx店使用。\",\"isRealName\":0,\"prizeName\":\"体验券x元\",\"reduceType\":3,\"couponSource\":1}"
	}],
	"sign": "e2f80c2814bxxx1afa0e"
}

需要将couponList->couponInfo->gameInfo->outOrderId数据拿出来。

问题

->和->>区别

->查询会范围引号,->>返回值不会有引号

  带引号的数据继续访问下层数据是不行的,所以一定要用->>获取数据

解决方法

参考文献

https://www.cnblogs.com/jingzh/p/16540150.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值