Skip to content

JSON_CONTAINS_PATH

功能描述

搜索json_doc是否在给定的路径下存在数据。

语法格式

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

参数说明

  • json_doc:JSON目标文档,JSON类型或JSON String类型。

  • one_or_all:one或者all,字符类型。

  • path: 一个或多个,JSON路径表达式,字符类型。

说明:

  • one:至少一个path存在数据,返回1。
  • all: 所有path都存在数据,返回1。

函数返回类型

INTEGER数值类型

示例

sql
SQL> SELECT TO_CHAR(JSON_CONTAINS_PATH( '[1,[1,2],3]', 'one', '$[1]', '$[3]'));

EXPR1 | 
------------------------------------------------------------------------------
1|

SQL> SELECT TO_CHAR(JSON_CONTAINS_PATH( '[1,[1,2],3]', 'all', '$[1]', '$[3]'));

EXPR1 | 
------------------------------------------------------------------------------
0|

-- 数组类型
SQL> SELECT
        TO_CHAR(JSON_CONTAINS_PATH('[1, 2, {"x": 3}]', 'all', '$[0]')) as `$[0]`,
        TO_CHAR(JSON_CONTAINS_PATH('[1, 2, {"x": 3}]', 'all', '$[3]')) as `$[3]`,
        TO_CHAR(JSON_CONTAINS_PATH('[1, 2, {"x": 3}]', 'all', '$[2].x')) as `$[2].x`;

$[0] | $[3] | $[2]x | 
------------------------------------------------------------------------------
1| 0| 1|

-- one vs all
SQL> SELECT
        TO_CHAR(JSON_CONTAINS_PATH('[1, 2, {"x": 3}]', 'one', '$[0]', '$[3]')) as `one`,
        TO_CHAR(JSON_CONTAINS_PATH('[1, 2, {"x": 3}]', 'all', '$[0]', '$[3]')) as `all`;

one | all | 
------------------------------------------------------------------------------
1| 0|