SQLite json_insert() 函数使用指南
SQLite json_insert() 函数向一个 JSON 文档中插入数据并返回新的 JSON 文档。
json_insert() 语法
这里是 SQLite json_insert() 的语法:
json_insert(json, path, value[, path2, value2] ...)
参数
json- 必需的。被修改的 JSON 文档。
 path- 必需的。一个有效的路径表达式。
 value- 必需的。被插入的数据。
 
返回值
json_insert() 函数向一个 JSON 文档中插入数据并返回新的 JSON 文档。您可以提供多对 path-value 参数,以便一次插入多个数据。
json_insert() 函数只能将数据插入到不存在路径。如果 JSON 文档中已经存在指定的路径,则不会插入数据。也就是说 json_insert() 函数不会覆盖已有的数据。
如果参数 json 不是有效的 JSON 文档,SQLite 将会给出错误。您可以使用 json_valid() 验证 JSON 文档的有效性。
json_insert() 示例
插入到 JSON 数组
让我们在数组 [1, [2, 3], {"a": [4, 5]}] 的开头和结尾分别插入一个元素:
SELECT json_insert('[1, [2, 3]]', '$[0]', 0, '$[2]', 6);
这里,我们想要在数组的开头插入 0,在数组的尾部插入 6。让我们看一下结果:
json_insert('[1, [2, 3]]', '$[0]', 0, '$[2]', 6)
------------------------------------------------
[1,[2,3],6]我们发现,并没有在数组的开头($[0])插入数据。这是因为数组在 $[0] 位置已经有了值,因此不会插入。而数组在 $[2] 位置是没有数据的,因此 6 被插入到数组的尾部。
插入到 JSON 对象
让我们在 {"x": 1} 插入一个值为 2 的成员 y:
SELECT json_insert('{"x": 1}', '$.y', 2);
json_insert('{"x": 1}', '$.y', 2)
---------------------------------
{"x":1,"y":2}