Skip to content

JSON_CONTAINS

功能描述

搜索json_doc是否存在于json_doc_target中,当path存在时,则判断是否存在于指定的路径下。

语法格式

JSON_CONTAINS( json_doc_target, json_doc[, path] )

参数说明

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

  • json_doc:JSON比对文本,JSON类型或JSON String类型。

  • path:(可选)JSON路径表达式,字符类型。

说明:

  • 如果任何参数为NULL则返回NULL。
  • 当对比值为数组时,数组元素都包含在目标文档的某个元素中时,返回1。
  • 当对比值为非数组时,非数组值包含在目标文档中时,返回1。
  • 当对比值为对象时,对象的键值对在目标中存在有相同的键名和值,返回1。

函数返回类型

INTEGER数值类型

示例

sql
SELECT TO_CHAR(JSON_CONTAINS( '[1,[1,2],3]', '1', '$[1]'));

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

-- 数组类型
SQL> SELECT
            TO_CHAR(JSON_CONTAINS('[1, 2, {"x": 3}]', '1')),
            TO_CHAR(JSON_CONTAINS('[1, 2, {"x": 3}]', '{"x": 3}')),
            TO_CHAR(JSON_CONTAINS('[1, 2, {"x": 3}]', '3'));

EXPR1 | EXPR2 | EXPR3 | 
------------------------------------------------------------------------------
1| 1| 0|

-- 指定路径
SQL> SELECT
        TO_CHAR(JSON_CONTAINS('[1, 2, [3, 4]]', '2')),
        TO_CHAR(JSON_CONTAINS('[1, 2, [3, 4]]', '2', '$[2]'));

EXPR1 | EXPR2 | 
------------------------------------------------------------------------------
1| 0|