Summary: in this tutorial, you will learn how to use the MySQL JSON_OVERLAPS() function to compare two JSON documents.
Introduction to MySQL JSON_OVERLAPS() function
The JSON_OVERLAPS() function compares two JSON documents and returns true (1) if the two documents share any key-value pairs or array elements or false (0) otherwise.
Here’s the syntax of the JSON_OVERLAPS() function:
JSON_OVERLAPS(json_doc1, json_doc2)Code language: JavaScript (javascript)In this syntax, json_doc1 and json_doc2 are the JSON documents you want to compare.
If both arguments are scalars, the function performs a simple equality test. If either argument is NULL, the function returns NULL.
This JSON_OVERLAPS() function complements the JSON_CONTAINS() function, which necessitates the presence of all search elements in the target array.
The JSON_CONTAINS() function acts as an AND operation on search keys, while JSON_OVERLAPS() functions as an OR operation.
MySQL JSON_OVERLAPS() function examples
Let’s take some examples of using the JSON_OVERLAPS() function.
1) Using MySQL JSON_OVERLAPS() function with arrays
The following example uses the JSON_OVERLAPS() to check if two arrays share at least one element:
SELECT
JSON_OVERLAPS("[1,2,3]", "[3,4,5]") result;Code language: JavaScript (javascript)It returns true because the number 3 appears on both arrays:
+--------+
| result |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)Code language: JavaScript (javascript)The following example returns false because two array doesn’t have any common elements:
SELECT
JSON_OVERLAPS("[1,2,3]", "[4,5]") result;Code language: JavaScript (javascript)Output:
+--------+
| result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
Code language: JavaScript (javascript)The JSON_OVERLAPS() will not carry a type checking before comparing. For example:
SELECT
JSON_OVERLAPS('["1","2"]', '[2,3]') result;Code language: JavaScript (javascript)Output:
+--------+
| result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)Code language: JavaScript (javascript)The function returns false because the first array has two string elements whereas the second array has two numbers.
2) Using JSON_OVERLAPS() function with objects
The following example uses the JSON_OVERLAPS() function to check if two objects share at least one key-value pair:
SELECT
JSON_OVERLAPS(
'{"name": "John"}', '{"name": "John", "age": 21}'
) result;Code language: JavaScript (javascript)It returns true because the objects share the same key-value pair {"name": "John"}:
+--------+
| result |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)Code language: JavaScript (javascript)Summary
- Use the
JSON_OVERLAPS()function to compare two JSON documents and return true if the two documents share any key-value pairs or array elements or false otherwise.