Mysql json数据实时解析 的JSON字段内容检索

前言

最近公司在做一项用户数据调查,需要统计某个值得使用频率,由于之前这个值是以一个JSON字符串形式存储的,所以不能直接用传统的方式匹配,幸亏现在数据库才做了升级版本到了5.7以后(支持JSON查询),要是放在以前,只有模糊匹配了。

分析

查看涉及到的字段是一个JSON对象数组类型,匹配的条件是用到对象的某一个字段,自然而然的想到了JSON_CONTAINS 函数来解决。

select *,JSON_EXTRACT(字段,'$[*].数组对象字段名称') from table_name where JSON_CONTAINS(字段,JSON_OBJECT('json属性', "内容"))

实战

1 以产品表为例,创建name为测试字段

Mysql json数据实时解析 的JSON字段内容检索(1)

2 条件查询

Mysql json数据实时解析 的JSON字段内容检索(2)

3 获取数组里面对象的某个属性

Mysql json数据实时解析 的JSON字段内容检索(3)

演示视频

思考与总结

如果要取出数组中某一条数据,貌似MySQL就处理不了(如果大家有办法请评论一下),只有在内存中用java进行处理。所以如果涉及到查询条件的字段,不要以JSON数组的格式存储,将JSON数组拆分成一个表来单独存储。设计表时,千万不要为了图一时简单,为往后埋下坑。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页