JSON_MERGE()¶
简介¶
合并两个或多个JSON文档。
语法¶
JSON_MERGE(json_doc, json_doc[, json_doc] ...)
说明¶
1. 合并按照以下规则进行:
- (1)当两个相邻JSON数据类型相同时,有以下三种情况:
①两者都为数组,则合并为一个数组。
②两者都为对象,则合并为一个对象。
③其它类型,会构建一个数组,将两者插入其中。
- (2)当两个相邻JSON数据类型不同时,有以下两种情况:
①其中有一个为数组,则将另一个插入数组中。
②两者都不为数组,则构建一个数组,将两者插入其中。
2. 当参数少于两个时,会报错。
3. 当参数大于或等于两个,并且其中一个或多个为NULL时,返回NULL。
示例¶
-- 相同类型合并
-- 数组与数组
SELECT JSON_MERGE('[1,2]', '[3,4]');
JSON_MERGE(json) |
----------------------
[1, 2, 3, 4] |
总数目:1
-- 对象与对象
SELECT JSON_MERGE('{"id":"1"}','{"name":"oscar"}');
JSON_MERGE(json) |
----------------------
{"id": "1", "name": "o|
scar"} |
总数目:1
-- 其它相同类型
SELECT JSON_MERGE('1','1');
JSON_MERGE(json) |
----------------------
[1, 1] |
总数目:1
SELECT JSON_MERGE('true','true');
JSON_MERGE(json) |
----------------------
[true, true] |
总数目:1
SELECT JSON_MERGE('"oscar"','"oscar"');
JSON_MERGE(json) |
----------------------
["oscar", "oscar"] |
总数目:1
SELECT JSON_MERGE('null','null');
JSON_MERGE(json) |
----------------------
[null, null] |
总数目:1
-- 不同类型合并
-- 数组与对象
SELECT JSON_MERGE('[1,2]','{"id":"1"}');
JSON_MERGE(json) |
----------------------
[1, 2, {"id": "1"}] |
总数目:1
-- 数组与数值
SELECT JSON_MERGE('[1,2]','1');
JSON_MERGE(json) |
----------------------
[1, 2, 1] |
总数目:1
-- 对象与数值
SELECT JSON_MERGE('{"name":"oscar"}','1');
JSON_MERGE(json) |
----------------------
[{"name": "oscar"}, 1]|
总数目:1
-- 数值与字符串
SELECT JSON_MERGE('1','"abcd"');
JSON_MERGE(json) |
----------------------
[1, "abcd"] |
总数目:1
-- 包含NULL
SELECT JSON_MERGE('{"id":"name"}',NULL);
JSON_MERGE(json) |
----------------------
null |
总数目:1
SELECT JSON_MERGE('[1,2]',NULL);
JSON_MERGE(json) |
----------------------
null |
总数目:1
SELECT JSON_MERGE('1',NULL);
JSON_MERGE(json) |
----------------------
null |
总数目:1