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|