JSON_MERGE_PRESERVE()¶
JSON_MERGE_PRESERVE(doc…) 通过保留重复键并合并数组元素来合并两个或更多 JSON 文档,这与会覆盖和删除成员的 JSON_MERGE_PATCH() 不同。
描述¶
JSON_MERGE_PRESERVE(json [, json] ...) 从左到右合并输入文档,同时保留所有值:
同键的对象成员会被合并为一个值数组。
数组会被拼接。
无法合并的标量值会被合并为一个数组。
这是与 MySQL 兼容的合并行为。如果需要 RFC 7396 的覆盖与删除语义,请使用 JSON_MERGE_PATCH()。
语法¶
JSON_MERGE_PRESERVE(json [, json] ...)
参数¶
参数 |
说明 |
|---|---|
|
要合并的两个或更多 JSON 文档。 |
返回值¶
返回合并后的 JSON 文档。
示例¶
DROP DATABASE IF EXISTS json_merge_preserve_demo;
CREATE DATABASE json_merge_preserve_demo;
USE json_merge_preserve_demo;
SELECT JSON_MERGE_PRESERVE('{"a":1,"b":2}', '{"a":3,"c":4}') AS merged;
SELECT JSON_MERGE_PRESERVE('[1,2]', '[true,false]') AS array_merge;
SELECT JSON_MERGE_PRESERVE('{"a":{"x":1}}', '{"a":{"y":2}}') AS nested_merge;
DROP DATABASE json_merge_preserve_demo;