Mysql 中 json、JsonArray 类型字段中指定属性的模糊查询问题
解决json类型字段的模糊查询:
存储的数据格式:{"type": "10", "mobile": "13545678900", "countryCode": "86"}
select * from a where mobile_json->’$.mobile’ like ‘%135%’
解决json类型字段的精确查询
数据存储格式:{“type”: “10”, “mobile”: “13545678900”, “countryCode”: “86”}
select * from a where mobile_json-> ‘$.mobile’ = 13545678900
解决 JsonArray 类型字段的模糊查询:
存储的数据格式: [{“type”: “10”, “mobile”: “13545678900”, “countryCode”: “86”}]
select * from a where mobile_json->’$[*].mobile’ like ‘%135%’
select * from a where JSON_EXTRACT(mobile_json, '$[*].mobile') LIKE '%$135%'
解决 JsonArray 类型字段的精确查询:
存储的数据格式: [{“type”: “10”, “mobile”: “13545678900”, “countryCode”: “86”}]
select * from a where JSON_CONTAINS(mobile_json,JSON_OBJECT(‘mobile’, “13545678900”))
thinkphp 或 laravel 写法
// 精确匹配$query->whereRaw("JSON_CONTAINS(ext_data, JSON_OBJECT('jump_type', ". $value."))" )
// 模糊匹配$query->whereRaw("items_json->'$[*].name' like '%$value%'" );
$query->whereRaw("JSON_EXTRACT(items_json, '$[*].name') LIKE '%$value%'" );
参考文献:
mysql查询json内字段 mysql查询json数组内字段模糊_恋上一只猪的技术博客_51CTO博客
学习笔记 如有侵权,请联系删除
来源地址:https://blog.csdn.net/yunxixiao/article/details/131770847
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341