Resumo : neste tutorial, você aprenderá como usar a JSON_OVERLAPS()
função MySQL para comparar dois documentos JSON.
Introdução à função JSON_OVERLAPS() do MySQL
A JSON_OVERLAPS()
função compara dois documentos JSON e retorna verdadeiro (1) se os dois documentos compartilharem quaisquer pares de valores-chave ou elementos de matriz ou falso (0) caso contrário.
Aqui está a sintaxe da JSON_OVERLAPS()
função:
JSON_OVERLAPS(json_doc1, json_doc2)
Linguagem de código: JavaScript ( javascript )
Nesta sintaxe, json_doc1
estão json_doc2
os documentos JSON que você deseja comparar.
Se ambos os argumentos forem escalares, a função executa um teste simples de igualdade. Se um dos argumentos for NULL
, a função retornará NULL
.
Esta JSON_OVERLAPS()
função complementa a JSON_CONTAINS()
função, que necessita da presença de todos os elementos de pesquisa na matriz de destino.
A JSON_CONTAINS()
função atua como uma operação AND nas teclas de pesquisa, enquanto JSON_OVERLAPS()
funciona como uma operação OR.
Exemplos de funções JSON_OVERLAPS() do MySQL
Vejamos alguns exemplos de uso da JSON_OVERLAPS()
função.
1) Usando a função MySQL JSON_OVERLAPS() com arrays
O exemplo a seguir usa JSON_OVERLAPS()
para verificar se dois arrays compartilham pelo menos um elemento:
SELECT
JSON_OVERLAPS("[1,2,3]", "[3,4,5]") result;
Linguagem de código: JavaScript ( javascript )
Retorna verdadeiro porque o número 3 aparece em ambas as matrizes:
+--------+
| result |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir retorna falso porque dois arrays não possuem nenhum elemento comum:
SELECT
JSON_OVERLAPS("[1,2,3]", "[4,5]") result;
Linguagem de código: JavaScript ( javascript )
Saída:
+--------+
| result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
O JSON_OVERLAPS() não realizará uma verificação de tipo antes da comparação. Por exemplo:
SELECT
JSON_OVERLAPS('["1","2"]', '[2,3]') result;
Linguagem de código: JavaScript ( javascript )
Saída:
+--------+
| result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
A função retorna falso porque o primeiro array possui dois elementos de string, enquanto o segundo array possui dois números.
2) Usando a função JSON_OVERLAPS() com objetos
O exemplo a seguir usa a JSON_OVERLAPS()
função para verificar se dois objetos compartilham pelo menos um par de valores-chave:
SELECT
JSON_OVERLAPS(
'{"name": "John"}', '{"name": "John", "age": 21}'
) result;
Linguagem de código: JavaScript ( javascript )
Ele retorna verdadeiro porque os objetos compartilham o mesmo par de valores-chave {"name": "John"}
:
+--------+
| result |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
Resumo
- Use a
JSON_OVERLAPS()
função para comparar dois documentos JSON e retornar verdadeiro se os dois documentos compartilharem quaisquer pares de valores-chave ou elementos de matriz ou falso caso contrário.