SQLite json_remove() 函数使用指南

SQLite json_remove() 函数从一个 JSON 文档中删除由路径指定的数据并返回修改后的 JSON 文档。

json_remove() 语法

这里是 SQLite json_remove() 的语法:

json_remove(json, path[, path] ...)

参数

json
必需的。一个 JSON 文档。
path
必需的。一个有效的路径表达式。

返回值

json_remove() 函数从一个 JSON 文档中删除由路径指定的数据并返回修改后的 JSON 文档。

如果参数 json 不是有效的 JSON 文档,SQLite 将会给出错误。您可以使用 json_valid() 验证 JSON 文档的有效性。

json_remove() 示例

从数组中删除

下面语句使用 json_remove() 从一个 JSON 数组中删除索引为 02 的元素。

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() 从左到右依次执行,步骤如下:

  1. 首先,执行 json_remove('[0, 1, 2, [3, 4]]', '$[0]'),返回了 JSON 文档 [1, 2, [3, 4]]
  2. 然后,执行 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}