mysql 5.6 json_mysql 列转行 并进行json截取(mysql 5.6)

本文介绍如何在MySQL 5.6中将JSON列转换为行,并进行JSON字段的截取。通过示例查询展示了如何利用SUBSTRING_INDEX和REPLACE函数解析JSON字符串,提取'val'和'area'字段的值。
摘要由CSDN通过智能技术生成

set @fild='},{';selectsubstring_index(substring_index(result,',',1),':',-1) asval

,replace(substring_index(substring_index(result,',',2),':',-1),'"','') asareafrom(SELECTt1.id

,t2.num_rn

,substring_index(substring_index(t1.image_file,@fild, t2.num_rn + 1), @fild, -1) as result --列转行

FROM(SELECT

1 asid

,'[{"val":4,"area":"floor","setVal":null,"isExceed":false,"isQualified":true},{"val":11,"area":"floor","setVal":null,"isExceed":true,"isQualified":false},{"val":3,"area":"floor","setVal":null,"isExceed":false,"isQualified":true},{"val":3,"area":"walls0","setVal":null,"isExceed":false,"isQualified":true},{"val":4,"area":"walls0","setVal":null,"isExceed":false,"isQualified":true},{"val":4,"area":"walls0","setVal":null,"isExceed":false,"isQualified":true},{"val":3,"area":"walls0","setVal":null,"isExceed":false,"isQualified":true},{"val":6,"area":"walls0","setVal":null,"isExceed":false,"isQualified":true},{"val":7,"area":"walls0","setVal":null,"isExceed":false,"isQualified":true},{"val":3,"area":"walls0","setVal":null,"isExceed":false,"isQualified":true},{"val":3,"area":"walls1","setVal":null,"isExceed":false,"isQualified":true},{"val":3,"area":"walls1","setVal":null,"isExceed":false,"isQualified":true},{"val":2,"area":"walls1","setVal":null,"isExceed":false,"isQualified":true},{"val":3,"area":"walls1","setVal":null,"isExceed":false,"isQualified":true},{"val":5,"area":"walls1","setVal":null,"isExceed":false,"isQualified":true},{"val":10,"area":"walls1","setVal":null,"isExceed":true,"isQualified":false},{"val":7,"area":"walls1","setVal":null,"isExceed":false,"isQualified":true},{"val":1,"area":"walls5","setVal":null,"isExceed":false,"isQualified":true},{"val":4,"area":"walls5","setVal":null,"isExceed":false,"isQualified":true}]' asimage_file

) t1join(select 0 as num_rn union all

select 1 as num_rn union all

select 2 as num_rn union all

select 3 as num_rn union all

select 4 as num_rn union all

select 5 as num_rn union all

select 6 as num_rn union all

select 7 as num_rn union all

select 8 as num_rn union all

select 9 asnum_rn

) t2ON t2.num_rn < ((LENGTH(t1.image_file) - LENGTH(REPLACE(t1.image_file, @fild, '')))/length(@fild) + 1)order byt2.num_rn

) t3

;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值