本文整理自网络,侵删。
工作开发过程遇到一个需求:需要动态存储客户的姓名、手机号码、身份证、证件类型,意思是可能前端会传一个人或二个人或者三个人的信息是动态的不固定人数的四个字段(姓名、手机号码、身份证、证件类型)。
前端页面如下:
我是使用List
[{ "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格式查找所有指定数据
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。