JSON_CONTAINS_PATH()

简介

JSON是否包含给定路径上的数据,TRUE表示存在,FALSE表示不存在

语法

JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...)

说明

1. 如果任何参数为NULL,则返回NULL。

2. 如果json_doc参数不是一个有效的JSON文档,或路径参数不是一个有效的路径表达式,或one_or_all不是'one'或'all',则会发生错误。

3. 'one':文档至少包含一个给定的路径,返回TRUE,否则返回FALSE。

4. 'all':文档需包含所有给定的路径,才会返回TRUE,否则返回FALSE。

注解

'one'和'all'不区分大小写。

示例

-- 任何参数为NULL,返回NULL
-- one_or_all参数为'one'时
SELECT JSON_CONTAINS_PATH('[1,2,3]','one','$[1]','$[2]') FROM DUAL;
JSON_CONTAINS_PATH(boolean)      |
---------------------------------
true                             |
总数目:1

SELECT JSON_CONTAINS_PATH('[1,2,3]','one','$[1]','$[10]') FROM DUAL;
JSON_CONTAINS_PATH(boolean)      |
---------------------------------
true                             |
总数目:1

SELECT JSON_CONTAINS_PATH('[1,2,3]','one','$[10]','$[20]') FROM DUAL;
JSON_CONTAINS_PATH(boolean)      |
---------------------------------
false                            |
总数目:1


-- one_or_all参数为'all'时
SELECT JSON_CONTAINS_PATH('[1,2,3]','all','$[1]','$[2]') FROM DUAL;
JSON_CONTAINS_PATH(boolean)      |
---------------------------------
true                             |
总数目:1

SELECT JSON_CONTAINS_PATH('[1,2,3]','all','$[1]','$[10]') FROM DUAL;
JSON_CONTAINS_PATH(boolean)      |
---------------------------------
false                            |
总数目:1

SELECT JSON_CONTAINS_PATH('[1,2,3]','all','$[10]','$[20]') FROM DUAL;
JSON_CONTAINS_PATH(boolean)      |
---------------------------------
false                            |
总数目:1