工作记录MySQL查询json数据

版本要求5.7+
https://blog.csdn.net/baidu_38609744/article/details/105897825
首先是JSON_UNQUOTE函数 望文生义 就是去掉引号的功能 将原json串的引号去掉转成string类型
然后来说下JSON_EXTRACT函数
根据键查对象
SELECT JSON_EXTRACT(content_img, ' . p a t h ′ ) f r o m m e w h e r e i d = 3 结 论 通 过 .path') from me where id = 3 结论 通过 .path)frommewhereid=3加.键名取出对象的value
数组类型的查询
example1:

select JSON_EXTRACT(content_img -> '$[0]', '$.path' ) from me where id = 1

example2:

select JSON_EXTRACT(content_img -> '$[1]', '$.path' ) from me where id = 2

结论
通过箭头符号 -> 来选择数组下标 $符号加.键名选择需要的值

查询判断json是否有值,如果有进行合并在一个单元格里面

CONCAT(
	( CASE WHEN (json_unquote(JSON_EXTRACT( y.s1, '$.s1_D26' )) ) > 0 THEN json_unquote(JSON_EXTRACT( y.s1, '$.s1_D26' )) ELSE '' END),
	( CASE WHEN (  json_unquote(JSON_EXTRACT( y.s1, '$.s1_D27' )) ) > 0 THEN json_unquote(JSON_EXTRACT( y.s1, '$.s1_D27' )) ELSE '' END ),
	( CASE WHEN (  json_unquote(JSON_EXTRACT( y.s1, '$.s1_D28' )) ) > 0 THEN json_unquote(JSON_EXTRACT( y.s1, '$.s1_D28' )) ELSE '' END )
) AS s1_D25
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello World呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值