mysql中的json查询
首先来构造数据
查询department里面name等于研发部的数据
查询语句跟普通的sql语句差不多,也就是字段名要用到path表达式
select * from user u where u.department->'$.name' = '研发部'
模糊查询
select * from user u where u.department->'$.name' like '%研发%'
查询department里面obj.title等于工程师的数据
select * from user u where u.department->'$.obj.title' = '工程师'
查询colors包含red的数据
需要用到json_contains函数,第一个参数是表的字段名,第二个参数是要查询的值,如果是字符串需要用双引号,第三个参数是path路径
select * from user u where JSON_CONTAINS(u.department,'"red"', '$.colors')
查询jobs里面的name包含经理的数据
select * from user u where u.department->'$.jobs[*].name' like '%经理%'
精确匹配
select * from user u where JSON_CONTAINS(u.department->'$.jobs[*].name','"经理"')