JSON_KEYS() în MySQL

Returnează lista cheilor unui obiect JSON.

Sintaxă
JSON_KEYS(document[, cale])

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.