JSON_REPLACE()

简介

替换JSON文档中的现有值并返回结果。

语法

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

说明

1. 如果json_doc或path为NULL,返回NULL。

2. 如果json_doc参数不是有效的JSON文档,或者任何路径参数不是有效的路径表达式,或者包含*或**通配符,则会发生错误。

3. json_replace可以多次指定路径并替换值,且每一次计算后产生的JSON值用作于下一次计算。

4. 对于文档中不存在的路径,替换操作将被忽略,并且不会产生任何影响。

示例

-- json_doc或path为NULL
SELECT JSON_REPLACE(NULL,'$[1]',1) FROM DUAL;
JSON_REPLACE(json)      |
------------------------
null                    |
总数目:1

SELECT JSON_REPLACE('[1,2,3]',NULL,1) FROM DUAL;
JSON_REPLACE(json)      |
------------------------
null                    |
总数目:1

SELECT JSON_REPLACE('[1,2,3]','$[1]',1,NULL,2) FROM DUAL;
JSON_REPLACE(json)      |
------------------------
null                    |
总数目:1


-- 多次替换
SELECT JSON_REPLACE('[1,2,3]','$[1]',4,'$[1]',5,'$[2]',6) FROM DUAL;
JSON_REPLACE(json)      |
------------------------
[1, 5, 6]               |
总数目:1

SELECT JSON_REPLACE('{"a":"b","c":"d","e":"f"}','$.a','jkl','$.a','asd','$.c','bnm') FROM DUAL;
JSON_REPLACE(json)      |
------------------------
{"a": "asd", "c": "bnm",|
 "e": "f"}              |
总数目:1


-- 替换文档中不存在路径下的值
SELECT JSON_REPLACE('[1,2,3]','$[10]',4) FROM DUAL;
JSON_REPLACE(json)      |
------------------------
[1, 2, 3]               |
总数目:1