VastbaseG100

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

Menu

JSON_REPLACE

功能描述

JSON_REPLACE函数用于替换JSON属性值,返回修改后的JSON值。

语法格式

json_replace(json_doc json, path jsonpath, val [, path jsonpath, val] ...)

参数说明

  • json_doc

    被修改的json。

  • path

    被修改值的路径

  • val

    更新的新值。

    根据path使用val值更新json_doc中已存在的值,并返回修改后的json_doc。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。
  • 如果任何参数是NULL则返回NULL。当json_doc或path参数不符合对应类型时,或者path中含有*或**通配符时,函数执行报错。
  • 该函数参数不定个数,可以传入一个json_doc和多对 (path, val) 组合实际执行时,会从左到右应用 (path, val) 组合,每应用一次就产生一个新的json_doc,下一个 (path, val) 应用在新的json_doc上。
  • 如果一个 (path, val) 无法根据path找到要更新的位置,则被跳过。

示例

1、创建并进入兼容MySQL的库db_mysql。

CREATE DATABASE db_mysql DBCOMPATIBILITY 'B';
\c db_mysql 

2、调用函数。

select * from json_replace('{"a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]');

结果返回如下:

      json_replace
------------------------
 {"a": 10, "b": [2, 3]}
(1 row)