Ce face JSON_ARRAYAGG()
JSON_ARRAYAGG() este echivalentul JSON al lui GROUP_CONCAT(): pentru fiecare grup, returnează o listă JSON cu valorile. Ordinea elementelor nu este garantată.
Parametri
| Parametru | Descriere |
|---|---|
expresie |
Valoarea pusă în listă. |
Ce returnează
O listă JSON.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE vanzari (
agent VARCHAR(20),
oras VARCHAR(20),
luna INT,
suma INT
);
INSERT INTO vanzari VALUES
('Ana', 'Iași', 1, 1200), ('Ana', 'Iași', 2, 1500), ('Ana', 'Iași', 3, 900),
('Dan', 'Cluj', 1, 900), ('Dan', 'Cluj', 2, 900), ('Dan', 'Cluj', 3, 1700),
('Ioana', 'Iași', 1, 2000), ('Ioana', 'Iași', 2, 1100);
Exemplul 1: Agenții fiecărui oraș, ca listă JSON
SELECT oras, JSON_ARRAYAGG(agent) AS agenti
FROM (SELECT DISTINCT oras, agent FROM vanzari ORDER BY agent) AS t
GROUP BY oras
ORDER BY oras;
Rezultat
+-------+------------------+
| oras | agenti |
+-------+------------------+
| Cluj | ["Dan"] |
| Iași | ["Ana", "Ioana"] |
+-------+------------------+
Greșeli frecvente
- Te bazezi pe ordinea elementelor. Dacă ordinea contează, folosește
GROUP_CONCAT(... ORDER BY ...)sau sortează după extragere.
Comenzi înrudite
JSON_OBJECTAGG(): Funcție de agregare: construiește un obiect JSON din perechi cheie-valoare ale unui grup.GROUP_CONCAT(): Lipește valorile unui grup într-un singur text, de exemplu toate produsele unei comenzi.JSON_ARRAY(): Construiește o listă (array) JSON din valorile date.