Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


JSON_CONTAINS

📄字数 526
👁️阅读量 加载中...

功能描述

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

语法格式

sql
JSON_CONTAINS( json_doc_target, json_doc[, path] )

输入参数

  • json_doc_target:JSON目标文本,JSON类型或字符类型。

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

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

输出结果

INTEGER类型。任意参数为NULL时,输出结果为NULL

提示

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

示例

sql
-- 不指定路径
SQL> SELECT JSON_CONTAINS(null, '1'),
            JSON_CONTAINS('[1, 2, {"x": 3}]', '1'),
            JSON_CONTAINS('[1, 2, {"x": 3}]', '{"x": 3}'),
            JSON_CONTAINS('[1, 2, {"x": 3}]', '3'),
            JSON_CONTAINS('{"x": 3}', '"x"');

+--------+-------+-------+-------+-------+
| EXPR1  | EXPR2 | EXPR3 | EXPR4 | EXPR5 |
+--------+-------+-------+-------+-------+
| <NULL> | 1     | 1     | 0     | 0     |
+--------+-------+-------+-------+-------+

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

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