JSON_OVERLAPS()¶
JSON_OVERLAPS(a, b) 比较两个 JSON 文档,当它们至少有一个共同的键值对或数组元素时返回 1,遵循 MySQL 的顶层重叠语义。
描述¶
JSON_OVERLAPS(a, b) 在两个 JSON 文档重叠时返回 1,否则返回 0:
两个数组如果至少有一个共同元素则重叠。
两个对象如果至少有一个共同的键值对则重叠。
标量如果与数组的某个元素相等,则与该数组重叠;否则两个标量仅在相等时重叠。
原生的 SQL 标量(如裸整数或布尔值)不是 JSON 文档,会在绑定阶段被拒绝;请将其作为 JSON 字符串传入或进行类型转换。
语法¶
JSON_OVERLAPS(a, b)
参数¶
参数 |
说明 |
|---|---|
|
第一个 JSON 文档(或兼容 JSON 的字符串)。 |
|
第二个 JSON 文档(或兼容 JSON 的字符串)。 |
返回值¶
如果两个文档重叠则返回 1,否则返回 0。如果任一参数为 NULL,则返回 NULL。
示例¶
DROP DATABASE IF EXISTS json_overlaps_demo;
CREATE DATABASE json_overlaps_demo;
USE json_overlaps_demo;
SELECT JSON_OVERLAPS('[1,3,5,7]', '[2,5,7]') AS overlap;
SELECT JSON_OVERLAPS('{"a":1,"d":10}', '{"d":10,"x":1}') AS obj_overlap;
SELECT JSON_OVERLAPS('true', 'false') AS scalar_overlap;
DROP DATABASE json_overlaps_demo;