Ce face JSON_CONTAINS_PATH()
Cu 'one' e suficient să existe una dintre căi; cu 'all' trebuie să existe toate. Este util pentru a găsi documentele care au (sau nu au) un câmp.
Parametri
| Parametru | Descriere |
|---|---|
document |
Documentul verificat. |
'one' | 'all' |
Câte căi trebuie să existe. |
cale |
Căile verificate. |
Ce returnează
1, 0 sau NULL.
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: Profiluri cu adresă
SELECT date->>'$.nume' AS nume,
JSON_CONTAINS_PATH(date, 'one', '$.adresa') AS are_adresa,
JSON_CONTAINS_PATH(date, 'all', '$.nume', '$.email') AS nume_si_email
FROM profiluri
ORDER BY id;
Rezultat
+-------+------------+---------------+
| nume | are_adresa | nume_si_email |
+-------+------------+---------------+
| Ana | 1 | 0 |
| Dan | 0 | 0 |
| Ioana | 0 | 0 |
+-------+------------+---------------+
Greșeli frecvente
- Confunzi existența căii cu valoarea ei. O cale cu valoarea
nullexistă, deci rezultatul este 1.
Comenzi înrudite
JSON_CONTAINS(): Verifică dacă un document JSON conține o anumită valoare sau un sub-document.JSON_KEYS(): Returnează lista cheilor unui obiect JSON.