Ce face JSON_OVERLAPS()
Pentru liste, JSON_OVERLAPS() returnează 1 dacă există cel puțin un element comun. Pentru obiecte, dacă există o pereche cheie-valoare comună.
Parametri
| Parametru | Descriere |
|---|---|
document1, document2 |
Documentele comparate. |
Ce returnează
1 sau 0.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE profiluri (
id INT PRIMARY KEY,
date JSON
);
INSERT INTO profiluri VALUES
(1, '{"nume": "Ana", "oras": "Iași", "varsta": 31, "hobby": ["citit", "înot"], "adresa": {"strada": "Lăpușneanu", "nr": 12}}'),
(2, '{"nume": "Dan", "oras": "Cluj", "varsta": 45, "hobby": ["ciclism"]}'),
(3, '{"nume": "Ioana", "oras": "Iași", "varsta": 27, "hobby": []}');
Exemplul 1: Interese comune
SELECT date->>'$.nume' AS nume,
JSON_OVERLAPS(date->'$.hobby', '["înot", "ciclism"]') AS interes_comun
FROM profiluri
ORDER BY id;
Rezultat
+-------+---------------+
| nume | interes_comun |
+-------+---------------+
| Ana | 1 |
| Dan | 1 |
| Ioana | 0 |
+-------+---------------+
Greșeli frecvente
- Folosești
JSON_CONTAINS()când vrei „oricare din”.JSON_CONTAINS()cere ca toate elementele să existe; pentru „măcar unul” eJSON_OVERLAPS().
Comenzi înrudite
JSON_CONTAINS(): Verifică dacă un document JSON conține o anumită valoare sau un sub-document.MEMBER OF(): Verifică dacă o valoare se află într-o listă JSON; poate folosi indexuri multi-valoare.