时间:2021-05-23
工作开发过程遇到一个需求:需要动态存储客户的姓名、手机号码、身份证、证件类型,意思是可能前端会传一个人或二个人或者三个人的信息是动态的不固定人数的四个字段(姓名、手机号码、身份证、证件类型)。
前端页面如下:
我是使用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格式字段内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
MySQL去除重复数据实例详解有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复的记录。对于第一种重复,比较容易解决,只需在查询
MySQL5.7.8中引入了json字段,这种类型的字段使用的频率比较低,但是在实际操作中,有些业务仍然在用,我们以此为例,介绍下json字段的操作方法:还是从
python2.7中集成了json的处理(simplejson),但在实际应用中,从mysql查询出来的数据,通常有日期格式,这时候,会报一个错:TypeErr
详解Mysql查询结果顺序按in()中ID的顺序排列实例代码:selectstyle_num_id,style_id,style_title,style_pic
本文实例讲述了php+mysql+ajax实现单表多字段多关键词查询的方法。分享给大家供大家参考,具体如下:单表多字段查询在一些稍微复杂一点的查询中十分有用。这