JSON_REMOVE()¶
简介¶
从JSON文档中删除数据并返回结果。
语法¶
JSON_REMOVE(json_doc, path[, path] ...)
说明¶
1. 如果任何参数为NULL,则返回NULL。
2. 如果json_doc参数不是一个有效的JSON文档,或者任何路径参数不是一个有效的路径表达式,或者是$或包含*或**通配符,则会发生错误。
3. json_doc可进行多次删除,进行了一次删除后的json_doc,将作为下一次删除的新值。
4. 如果要删除的元素在文档中不存在,则忽略此路径。
示例¶
-- 任何参数为NULL,返回NULL
SELECT JSON_REMOVE('["a", ["b", "c"], "d"]', NULL) FROM DUAL;
JSON_REMOVE(json) |
-----------------------
null |
总数目:1
SELECT JSON_REMOVE('["a", ["b", "c"], "d"]', '$[1]',NULL) FROM DUAL;
JSON_REMOVE(json) |
-----------------------
null |
总数目:1
SELECT JSON_REMOVE(NULL,'$[1]') FROM DUAL;
JSON_REMOVE(json) |
-----------------------
null |
总数目:1
-- 删除多个值
SELECT JSON_REMOVE('[1,2,3]','$[0]','$[1]') FROM DUAL;
JSON_REMOVE(json) |
-----------------------
[2] |
总数目:1
SELECT JSON_REMOVE('{"a":"b","c":"d","e":"f"}','$.a','$.b') FROM DUAL;
JSON_REMOVE(json) |
-----------------------
{"c": "d", "e": "f"} |
总数目:1
-- 删除不存在路径下的值
SELECT JSON_REMOVE('[1,2,3]','$[10]') FROM DUAL;
JSON_REMOVE(json) |
-----------------------
[1, 2, 3] |
总数目:1