• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL中查询json格式的字段实例详解

    工作开发过程遇到一个需求:需要动态存储客户的姓名、手机号码、身份证、证件类型,意思是可能前端会传一个人或二个人或者三个人的信息是动态的不固定人数的四个字段(姓名、手机号码、身份证、证件类型)。

    前端页面如下:

    我是使用List来接收前端传过来 json,mysql 用 varchar 来保存这个 json 数组

    [{
    	"cardId": "110101199003072316",
    	"cstName": "张双儿1",
    	"cstMobile": "13263654144",
    	"idCardType": "1"
    }, {
    	"cardId": "11010119900307571X",
    	"cstName": "张双儿2",
    	"cstMobile": "13263654144",
    	"idCardType": "1"
    }]
    

    产品提出来的需求是要模糊查询这些联名客户信息,一开始我错误的写法:

    select * from signCustomerGroup like ‘%儿%'

    但是后来发现有问题,比如 模糊输入一个字母 c ,就会把左边‘cardId' 的英文字段名称匹配上。
    后来我了解到 MySQL 5.7 以后版本加入了 json 类型,可以使用json类型的一些函数直接查询json格式的某个字段。

    正确语法如下:

    表字段:

    id sign_customer_info_ext
    1 [{“cstName”:“hhjk”,“cstMobile”:“14258669888”,“idCardType”:“1”,“cardId”:“460101199601012516”}]
    2 [{“cstName”:“ghhj中文1355”,“cstMobile”:“18253558608”,“idCardType”:“1”,“cardId”:“460101199601012815”},{“cstName”:“fhjj重要133366”,“cstMobile”:“15555555555”,“idCardType”:“1”,“cardId”:“460101199601012313”}]

    主要使用的 SQL 函数是 json_extract() ,它的作用是:从JSON格式查找所有指定数据

    1. json 数组查询

    模糊查询 json 数组格式的字段中某个字段:
    使用方式:
    SELECT * FROM 表名 WHERE json_extract(字段名,"$[*].json中key") like '%需要搜索的值%';
    实例:
    SELECT * FROM table WHERE json_extract(sign_customer_info_ext,"$[*].cstName") like '%h%';
    
    精准查询(注意:精准查询必须写明所查询字段所属数组那个下标,比如查排在一个就是 [0],第二个就是 [1])
    SELECT id,sign_customer_info_ext FROM table WHERE json_extract(sign_customer_info_ext,"$[0].cstName") = 'ghhj中文1355';
    

    2.单个 json 查询

    前端和mysql数据库中 单个 json 参数:

    {
    	"cstName": "马云",
    	"cstMobile": "17879767646",
    	"idCardType": "1",
    	"cardId": "E4813980"
    }
    
    模糊查询单个 json 查询:
    使用方式:
    SELECT id,sign_customer_info_ext FROM 表名 WHERE json_extract(字段名,"$.json中key") like '%马云%';
    实例:
    SELECT id,sign_customer_info_ext FROM table WHERE json_extract(sign_customer_info_ext,"$.cstName") like '%马云%';
    

    总结

    到此这篇关于MySQL中查询json格式的文章就介绍到这了,更多相关MySQL查询json格式字段内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • mysql查询字段类型为json时的两种查询方式
    • mysql5.6及以下版本如何查询数据库里的json
    • MySQL全文索引、联合索引、like查询、json查询速度哪个快
    • mysql json格式数据查询操作
    • Mysql 查询JSON结果的相关函数汇总
    上一篇:一台linux主机启动多个MySQL数据库的方法
    下一篇:MySQL8.0.23版本的root密码重置最优解法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL中查询json格式的字段实例详解 MySQL,中,查询,json,格式,的,