数据格式一:
set @j2 = '{
"teacher":[
{
"id":"12",
"option":[
{
"key":"123",
"value":"1"
}
]
}
]
}';
SELECT json_contains(JSON_EXTRACT(@j2, '$.teacher[*].option[*]'), json_object("key", "123")); -- 返回 1 如何查不到返回 0
//获取 key 包含 123 的数量
SELECT JSON_LENGTH(JSON_SEARCH(JSON_EXTRACT(@j2, '$.teacher[*].option[*].key'),"all","123")) -- 1
数据格式二:
set @j3 = '{
"teacher":{
"12":[
{
"key":"123",
"value":"1"
}
],
"14":[
{
"key":"123",
"value":"1"
}
]
}
}';
SELECT JSON_EXTRACT(@j3, '$.teacher."12"[*].key'); -- ["123"]
//获取 key 包含 123 的数量
SELECT JSON_LENGTH(JSON_SEARCH(JSON_EXTRACT(@j3, '$.teacher.*[*].key'),"all","123")) -- 2
// 指定id 12 获取 key 包含 123 的数量
SELECT JSON_LENGTH(JSON_SEARCH(JSON_EXTRACT(@j3, '$.teacher."12"[*].key'),"all","123")) -- 1
MySQL 查询多维数组的方式
于 2023-08-17 10:21:18 首次发布