JSON_MERGE_PATCH()¶
JSON_MERGE_PATCH(doc…) 按照 RFC 7396 语义合并两个或更多 JSON 文档,其中 null 值删除成员,后出现的对象覆盖先出现的值。
描述¶
JSON_MERGE_PATCH(json [, json] ...) 使用 RFC 7396 merge-patch 语义从左到右合并输入文档:
后出现的文档中的对象成员会替换先出现的同键成员。
后出现的文档中值为
null的成员会删除对应成员。数组和标量值会被整体替换,而不是合并。
这与 JSON_MERGE_PRESERVE() 不同,后者会合并重复的键和数组元素,而不是覆盖。
语法¶
JSON_MERGE_PATCH(json [, json] ...)
参数¶
参数 |
说明 |
|---|---|
|
要合并的两个或更多 JSON 文档。 |
返回值¶
返回合并后的 JSON 文档。
示例¶
DROP DATABASE IF EXISTS json_merge_patch_demo;
CREATE DATABASE json_merge_patch_demo;
USE json_merge_patch_demo;
SELECT JSON_MERGE_PATCH('{"a":1,"b":2}', '{"b":3,"c":4}') AS patched;
SELECT JSON_MERGE_PATCH('{"a":1,"b":2}', '{"b":null}') AS deleted_b;
SELECT JSON_MERGE_PATCH('{"a":{"x":1}}', '{"a":{"y":2}}') AS nested_patch;
DROP DATABASE json_merge_patch_demo;