MariaDB/MySQL 内建函数 JSON_ARRAY_APPEND
MariaDB/MySQL 内建函数 JSON_ARRAY_APPEND()
将值附加到 JSON 数据中指定数组的末尾并返回结果。
(MariaDB >= 10.2.3)
示例
SET @json = '[1, 2, [3, 4]]'; SELECT JSON_ARRAY_APPEND(@json, '$[0]', 5);
运行结果如下
+-------------------------------------+ | JSON_ARRAY_APPEND(@json, '$[0]', 5) | +-------------------------------------+ | [[1, 5], 2, [3, 4]] | +-------------------------------------+
函数原型
JSON_ARRAY_APPEND(json_doc, path, value[, path, value] ...)
JSON_ARRAY_APPEND()
函数将值附加到 JSON 文档中指定数组的末尾并返回结果,如果任何参数为 NULL
,则返回 NULL
。
参数 path
和 value
会按照顺序从左到右执行,后面的会在前面的结果上执行。
如果参数 json_doc
不是有效的 JSON 文档,或者任何路径 path
无效,或者包含 *
或 **
通配符,则会返回错误。
范例准备
在范例开始前,我们先准备一个 JSON
文档
SET @json = '[1, 2, [3, 4]]';
范例 1
SELECT JSON_ARRAY_APPEND(@json, '$[0]', 5);
运行结果如下
+-------------------------------------+ | JSON_ARRAY_APPEND(@json, '$[0]', 5) | +-------------------------------------+ | [[1, 5], 2, [3, 4]] | +-------------------------------------+
范例 2
SELECT JSON_ARRAY_APPEND(@json, '$[1]', 6);
运行结果如下
+-------------------------------------+ | JSON_ARRAY_APPEND(@json, '$[1]', 6) | +-------------------------------------+ | [1, [2, 6], [3, 4]] | +-------------------------------------+
范例 3
SELECT JSON_ARRAY_APPEND(@json, '$[1]', 6, '$[2]', 7);
运行结果如下
+------------------------------------------------+ | JSON_ARRAY_APPEND(@json, '$[1]', 6, '$[2]', 7) | +------------------------------------------------+ | [1, [2, 6], [3, 4, 7]] | +------------------------------------------------+
范例 4
SELECT JSON_ARRAY_APPEND(@json, '$', 5);
运行结果如下
+----------------------------------+ | JSON_ARRAY_APPEND(@json, '$', 5) | +----------------------------------+ | [1, 2, [3, 4], 5] | +----------------------------------+
范例 5
SET @json = '{"A": 1, "B": [2], "C": [3, 4]}'; SELECT JSON_ARRAY_APPEND(@json, '$.B', 5);
运行结果如下
+------------------------------------+ | JSON_ARRAY_APPEND(@json, '$.B', 5) | +------------------------------------+ | {"A": 1, "B": [2, 5], "C": [3, 4]} | +------------------------------------+