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博客

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

相关推荐
LinuxGeek102430 分钟前
Kylin-Server-V11、openEuler-22.03和openEuler-24.03适配原生rpm的MySQL 8.4.11版本正式发布
大数据·mysql·kylin
Lucifer三思而后行3 小时前
TDSQL MySQL 版 DBA 实用 100 条命令
mysql·tdsql
wWYy.7 小时前
Mysql:覆盖索引
android·数据库·mysql
无忧.芙桃7 小时前
MySQL数据库原理与实践(五):内置函数
数据库·mysql
wWYy.9 小时前
Mysql:一行数据是怎么存储的?
android·数据库·mysql
☆凡尘清心☆1 天前
CentOS Stream 9 专用 LNMP 全自动一键脚本
linux·运维·mysql·nginx·lnmp·centos stream 9
赵庆明老师1 天前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim
xqqxqxxq1 天前
DML 表数据:插入、删除、修改
笔记·mysql
xxwl5851 天前
数据库后端接口测试报告
spring boot·mysql·tomcat
xqqxqxxq1 天前
MySQL 数据类型笔记
数据库·笔记·mysql