Ce face JSON_LENGTH()
JSON_LENGTH() numără elementele de pe primul nivel. O valoare simplă (număr, text) are lungimea 1.
Parametri
| Parametru | Descriere |
|---|---|
document |
Documentul JSON. |
cale |
Opțional. Partea numărată. |
Ce returnează
Un număr întreg sau NULL dacă nu există calea.
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: Câte hobby-uri are fiecare
SELECT date->>'$.nume' AS nume, JSON_LENGTH(date, '$.hobby') AS hobby, JSON_LENGTH(date) AS chei
FROM profiluri
ORDER BY id;
Rezultat
+-------+-------+------+
| nume | hobby | chei |
+-------+-------+------+
| Ana | 2 | 5 |
| Dan | 1 | 4 |
| Ioana | 0 | 4 |
+-------+-------+------+
Greșeli frecvente
- Te aștepți ca
JSON_LENGTH()să numere și elementele din obiectele imbricate. Numără doar primul nivel.
Comenzi înrudite
JSON_KEYS(): Returnează lista cheilor unui obiect JSON.JSON_DEPTH(): Adâncimea maximă a unui document JSON (câte niveluri de liste/obiecte are).JSON_TYPE(): Tipul unei valori JSON: OBJECT, ARRAY, STRING, INTEGER, DOUBLE, BOOLEAN, NULL etc.