Ce face JSON_KEYS()
JSON_KEYS() dă cheile de pe primul nivel al obiectului (sau de la calea dată) ca listă JSON. Ordinea este cea internă a MySQL (cheile mai scurte primele), nu ordinea în care au fost scrise.
Parametri
| Parametru | Descriere |
|---|---|
document |
Documentul JSON. |
cale |
Opțional. Obiectul ale cărui chei le vrei. |
Ce returnează
O listă JSON cu cheile sau NULL dacă valoarea nu este obiect.
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: Cheile unui profil și ale adresei
SELECT JSON_KEYS(date) AS chei, JSON_KEYS(date, '$.adresa') AS chei_adresa
FROM profiluri
WHERE id = 1;
Rezultat
+-----------------------------------------------+------------------+
| chei | chei_adresa |
+-----------------------------------------------+------------------+
| ["nume", "oras", "hobby", "adresa", "varsta"] | ["nr", "strada"] |
+-----------------------------------------------+------------------+
Greșeli frecvente
- Te bazezi pe ordinea cheilor. MySQL normalizează obiectele JSON și le reordonează.
Comenzi înrudite
JSON_LENGTH(): Numărul de elemente al unei liste sau numărul de chei al unui obiect JSON.JSON_EXTRACT(): Citește o valoare dintr-un document JSON după o cale ca ‘$.adresa.strada’.JSON_CONTAINS_PATH(): Verifică dacă există una sau toate căile date într-un document JSON.