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内字段 mysql查询json数组内字段模糊_恋上一只猪的技术博客_51CTO博客

学习笔记 如有侵权,请联系删除

相关推荐
fengsen521131421 小时前
MySQL--》如何在MySQL中打造高效优化索引
android·mysql·adb
世界尽头与你1 天前
MySQL 三大日志(binlog、redo log 和 undo log)深度解析
数据库·mysql
dreams_dream1 天前
MySQL 主从复制(小白友好 + 企业级)
android·数据库·mysql
014-code1 天前
MySQL 事务隔离级别
java·数据库·mysql
代码星辰1 天前
MySQL 面试题——深度分页优化
数据库·mysql·覆盖索引·深度分页
XP62261 天前
MySQL 数据库连接数查询、配置
数据库·mysql
之歆1 天前
MySQL 主从复制完全指南
android·mysql·adb
zsyf19871 天前
MySQL如何执行.sql 文件:详细教学指南
数据库·mysql
发现你走远了1 天前
MySQL(Windows)压缩包安装与配置指南(超详细版)
数据库·mysql