---
title: github-fill
description: JSON_OVERLAPS 描述 该函数用于比较两个 JSON 文档。如果两个文档具有共同的键值对（key-value）或数组元素，则返回 1，否则返回 0。 语法 JSON_OVERLAPS(json_doc1, json_doc2) 说明 参数 json_doc1 和 json_doc2 分别指定两个用于比较的 …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# JSON_OVERLAPS

更新时间：2026-03-01 18:28:21

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/400.functions-of-mysql-mode/700.json-functions-of-mysql-mode/200.search-json-text-function-of-mysql-mode/500.json-overlaps-of-mysql-mode.md)  

## 描述

该函数用于比较两个 JSON 文档。如果两个文档具有共同的键值对（key-value）或数组元素，则返回 1，否则返回 0。

## 语法

```sql
JSON_OVERLAPS(json_doc1, json_doc2)

```

## 说明

参数 `json_doc1` 和 `json_doc2` 分别指定两个用于比较的 JSON 文档。如果两个参数都是标量，则函数执行简单的相等性测试。

该函数与 JSON_CONTAINS() 对应，它要求搜索的数组的所有元素都存在于被搜索的数组中。因此，JSON_CONTAINS() 对搜索键执行 `AND` 运算，而 JSON_OVERLAPS() 执行 `OR` 运算。

在比较两个数组时，如果它们共享一个或多个数组元素，则 JSON_OVERLAPS() 返回 `1`，否则返回 `0`。

在 `WHERE` 子句中使用 JSON_OVERLAPS() 对 InnoDB 表的 JSON 列的查询，可以使用多值索引进行优化。

## 示例

```sql
obclient> SELECT JSON_OVERLAPS("[1,3,5,7]", "[2,3,5]");
+---------------------------------------+
| JSON_OVERLAPS("[1,3,5,7]", "[2,3,5]") |
+---------------------------------------+
|                                     1 |
+---------------------------------------+
1 row in set

obclient> SELECT JSON_OVERLAPS("[1,3,5,7]", "[2,4,6]");
+---------------------------------------+
| JSON_OVERLAPS("[1,3,5,7]", "[2,4,6]") |
+---------------------------------------+
|                                     0 |
+---------------------------------------+
1 row in set

obclient> SELECT JSON_OVERLAPS('[[1,2],[3,4],5]', '[1,[2,3],[4,5]]');
+-----------------------------------------------------+
| JSON_OVERLAPS('[[1,2],[3,4],5]', '[1,[2,3],[4,5]]') |
+-----------------------------------------------------+
|                                                   0 |
+-----------------------------------------------------+
1 row in set

obclient> SELECT JSON_OVERLAPS('2', '2');
+-------------------------+
| JSON_OVERLAPS('2', '2') |
+-------------------------+
|                       1 |
+-------------------------+
1 row in set

obclient> SELECT JSON_OVERLAPS('[4,5,6,7]', '5');
+---------------------------------+
| JSON_OVERLAPS('[4,5,6,7]', '5') |
+---------------------------------+
|                               1 |
+---------------------------------+
1 row in set

/* 该函数不执行数据类型转换*/
obclient> SELECT JSON_OVERLAPS('[4,"5",6,7]', '5');
+-----------------------------------+
| JSON_OVERLAPS('[4,"5",6,7]', '5') |
+-----------------------------------+
|                                 0 |
+-----------------------------------+
1 row in set

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
