MariaDB JSON_REMOVE() 函数使用指南
在 MariaDB 中,JSON_REMOVE()
是一个内置函数,它从一个 JSON 文档中删除由路径指定的数据。
MariaDB JSON_REMOVE()
语法
这里是 MariaDB JSON_REMOVE()
的语法:
JSON_REMOVE(json, path[, path] ...)
参数
json
- 必需的。一个 JSON 文档。
path
- 必需的。一个有效的路径表达式,它不能包含
*
或**
。
如果您提供了错误数量的参数,MariaDB 将报告一个错误: ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_REMOVE'
。
返回值
MariaDB JSON_REMOVE()
函数从一个 JSON 文档中删除由路径指定的数据并返回修改后的 JSON 文档。
您可以通过参数提供多个路径表达式以供删除。多个路径参数会从左到右依次被执行。当执行下一个参数的时候,JSON 文档可能已经发生了变化。
如果 JSON 中不存在指定的路径,此函数返回原文档。
如果 JSON 文档或者路径为 NULL
,此函数将返回 NULL
。
MariaDB JSON_REMOVE()
示例
从数组中删除
下面语句使用 JSON_REMOVE()
从一个 JSON 数组中删除索引为 0
和 3
的元素。
SELECT JSON_REMOVE('[0, 1, 2, [3, 4]]', '$[0]', '$[2]');
输出:
+--------------------------------------------------+
| JSON_REMOVE('[0, 1, 2, [3, 4]]', '$[0]', '$[2]') |
+--------------------------------------------------+
| [1, 2] |
+--------------------------------------------------+
这里,您可能会感到迷惑,为什么使用 $[2]
来删除索引位置 3 的数据?这是因为当存在多个路径的时候,JSON_REMOVE()
从左到右依次执行,步骤如下:
- 首先,执行
JSON_REMOVE('[0, 1, 2, [3, 4]]', '$[0]')
,返回了 JSON 文档[1, 2, [3, 4]]
。 - 然后,执行
JSON_REMOVE('[1, 2, [3, 4]]', '$[2]')
,返回了 JSON 文档[1, 2]
。
从对象中删除
下面语句使用 JSON_REMOVE()
从一个 JSON 对象中删除一个成员。
SELECT JSON_REMOVE('{"x": 1, "y": 2}', '$.x');
输出:
+----------------------------------------+
| JSON_REMOVE('{"x": 1, "y": 2}', '$.x') |
+----------------------------------------+
| {"y": 2} |
+----------------------------------------+
结论
在 MariaDB 中,JSON_REMOVE()
是一个内置函数,它从一个 JSON 文档中删除由路径指定的数据。