徐州做外贸网站,网站搜索优化公司,阿里企业网站托管,网上最好购物网站推荐链接#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD… 推荐链接 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoDB】 总结——》【Elasticsearch】 Mysql——》提取JSON对象和数组1. JSON对象1.1 提取JSON的key1.2 提取JSON的值1.2.1 提取所有key的值1.2.2 提取指定key的值1.2.3 提取指定key的值去掉引号2. JSON数组2.1 提取JSON数组的值2.1.1 提取所有元素2.1.2 提取所有元素指定key的值2.1.3 提取所有元素指定key的值用逗号分隔2.1.4 提取指定索引的元素3. 总结1. JSON对象
{age: 11,name: 张三
}-- 定义变量json
set json:{age:11,name:张三};1.1 提取JSON的key
JSON_KEYS函数用于提取JSON的key值
-- 提取所有key
SELECT JSON_KEYS(json) AS keys;1.2 提取JSON的值
JSON_EXTRACT函数用于提取JSON的值
$.*取所有值$.key取单个值
1.2.1 提取所有key的值
-- 提取所有key的值
SELECT JSON_EXTRACT(json, $.*) AS values;1.2.2 提取指定key的值
-- 提取指定key的值
SELECT JSON_EXTRACT(json, $.name) AS extracted_name;1.2.3 提取指定key的值去掉引号
JSON_UNQUOTE函数对单个结果进行去引号操作
-- 提取指定key的值去掉引号
SELECT JSON_UNQUOTE(JSON_EXTRACT(json, $.name)) AS extracted_name;2. JSON数组
[{age: 11,name: 张三},{age: 12,name: 李四}
]-- 定义变量json_array
SET json_array:[{age:11,name:张三},{age:12,name:李四}];2.1 提取JSON数组的值
$[*] JSON数组所有对象
$[0] JSON数组第一个对象
$[*].key JOSN数组所有对象对应key的值
$[0].key JSON数组第一个对象对应key的值
2.1.1 提取所有元素
JSON_TABLE函数将 JSON 数组展开成关系表的形式方便获取所有元素。
-- 提取所有元素以表格形式展示每个对象的age和name字段
SELECT element.*
FROM
JSON_TABLE(json_array,$[*] COLUMNS (age INT PATH $.age,name VARCHAR(255) PATH $.name)
) AS element;2.1.2 提取所有元素指定key的值
-- 提取所有元素指定key的值
SELECT JSON_UNQUOTE(JSON_EXTRACT(json_array, $[*].name)) AS extracted_name;2.1.3 提取所有元素指定key的值用逗号分隔
-- 提取所有元素指定key的值用逗号分隔
SELECT GROUP_CONCAT(names.name SEPARATOR ,) AS combined_names
FROM
JSON_TABLE(json_array,$[*] COLUMNS (name VARCHAR(255) PATH $.name)
) AS names; 2.1.4 提取指定索引的元素
-- 提取指定索引的元素
SELECT JSON_EXTRACT(json_array, $[0]) AS element_0;
-- 提取指定索引的元素中指定key的值
SELECT JSON_EXTRACT(json_array, $[0].name) AS name_0;3. 总结
-- 定义变量json
set json:{age:11,name:张三};
-- 提取JSON的key
SELECT JSON_KEYS(json) AS keys;
-- 提取所有key的值
SELECT JSON_EXTRACT(json, $.*) AS values;
-- 提取指定key的值
SELECT JSON_EXTRACT(json, $.name) AS extracted_name;
-- 提取指定key的值去掉引号
SELECT JSON_UNQUOTE(JSON_EXTRACT(json, $.name)) AS extracted_name;-- ----------------------------------------------------------------------
-- 定义变量json_array
SET json_array:[{age:11,name:张三},{age:12,name:李四}];
-- 提取所有元素以表格形式展示每个对象的age和name字段
SELECT element.*
FROM
JSON_TABLE(json_array,$[*] COLUMNS (age INT PATH $.age,name VARCHAR(255) PATH $.name)
) AS element;
-- 提取所有元素指定key的值
SELECT JSON_UNQUOTE(JSON_EXTRACT(json_array, $[*].name)) AS extracted_name;
-- 提取所有元素指定key的值用逗号分隔
SELECT GROUP_CONCAT(names.name SEPARATOR ,) AS combined_names
FROM
JSON_TABLE(json_array,$[*] COLUMNS (name VARCHAR(255) PATH $.name)
) AS names;
-- 提取指定索引的元素
SELECT JSON_EXTRACT(json_array, $[0]) AS element_0;
-- 提取指定索引的元素中指定key的值
SELECT JSON_EXTRACT(json_array, $[0].name) AS name_0;