select*from (select'{"addr": "湖北省黄石市xxxx", "name": "张三", "birth": "1800年10月12日", "gender": "男", "idcard": "420222180010124871", "nation": "汉"}'as data) t where data->'$.name'LIKE'%张%';
使用json_extract函数查询,json_extract(字段, "$.json属性")
1 2
select*from (select'{"addr": "湖北省黄石市xxxx", "name": "张三", "birth": "1800年10月12日", "gender": "男", "idcard": "420222180010124871", "nation": "汉"}'as data) t where json_extract(data,'$.name') LIKE'%张%';
二、json数组结构的字段内容
使用 字段->'$[数组索引].json属性'
1 2 3 4
select*from (select'[{"real-name": "张三","phone": "15611112222"},{"real-name": "李四","phone": "17833334444"}]'as data) t where data->'$[*]."real-name"'LIKE'%张%'; -- 查询数组索引任意的对象 -- where data->'$[0]."real-name"' LIKE '%张%'; -- 查询数组索引为0的对象 -- where data->'$[1]."real-name"' LIKE '%张%'; -- 查询数组索引为1的对象
使用JSON_CONTAINS(字段, JSON_OBJECT('json属性', '内容'))
1 2
select*from (select'[{"real-name": "张三","phone": "15611112222"},{"real-name": "李四","phone": "17833334444"}]'as data) t where JSON_CONTAINS(data,JSON_OBJECT('real-name', "张三"))