VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

JSON_ARRAY_APPEND

功能描述

JSON_ARRAY_APPEND函数用来修改JSON文档,向指定的数组节点中追加一个元素,并返回修改后的JSON文档。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库初始化时指定DBCOMPATIBILITY='B')。
  • 在指定的数组位置末尾追加元素,假如指定的位置不是数组追加完过后就变成了数组。
  • 如果任何参数为 NULL,则返回 NULL。

语法格式

JSON_ARRAY_APPEND(json_doc, path, val[, path, val] ...)

参数说明

  • json_doc

    JSON文档,它可以是一个JSON字符串,或者一个JSON列。

  • path

    路径参数。

  • val

    将要追加到JSON文档的元素。

示例

1、设置GUC参数enable_set_variable_b_format=on;

set enable_set_variable_b_format = on;
show enable_set_variable_b_format;

返回结果为:

 enable_set_variable_b_format
------------------------------
 on
(1 row)

2、设置自定义变量j。

SET @j = '["a", ["b", "c"], "d"]';

3、调用JSON_ARRAY_APPEND函数。

SELECT JSON_ARRAY_APPEND(@j, '$[1]', 1);
SELECT JSON_ARRAY_APPEND(@j, '$[0]', 2);
SELECT JSON_ARRAY_APPEND(@j, '$[1][0]', 3);

返回结果分别为:

     json_array_append
---------------------------
 ["a", ["b", "c", 1], "d"]
(1 row)

      json_array_append
-----------------------------
 [["a", 2], ["b", "c"], "d"]
(1 row)

      json_array_append
-----------------------------
 ["a", [["b", 3], "c"], "d"]
(1 row)