SQLite json_group_array() funktion er en aggregeret funktion, der returnerer et JSON-array, der består af alle værdier i aggregeringen.
Med andre ord, den konstruerer en matrix ud fra de værdier, som dens argument giver.
Syntaks
json_group_array(X)
Hvor X repræsenterer det/de elementer, som det resulterende array vil bestå af.
Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT json_group_array( "Fritz" ); Resultat:
["Fritz"]
Vi kan se, at et array blev returneret med den værdi, vi har angivet.
Den sande kraft af denne funktion er imidlertid demonstreret i scenarier, der bruger aggregerede data (som i databaseeksemplerne nedenfor). Vi kunne trods alt bare have brugt json_array() funktion for ovenstående eksempel:
SELECT json_array( "Fritz" ); Resultat:
["Fritz"]
Som nævnt er denne funktions sande kraft i håndteringen af aggregerede data. Derfor json_group_array() vil typisk blive brugt, når du forespørger i en database.
Databaseeksempel
Antag, at vi har følgende tabel:
SELECT * FROM Pets; Resultat:
+-------+---------+--------+ | PetId | PetName | TypeId | +-------+---------+--------+ | 1 | Homer | 3 | | 2 | Yelp | 1 | | 3 | Fluff | 2 | | 4 | Brush | 4 | +-------+---------+--------+
Vi kan se, at der er tre kolonner, og vi kan se deres navne.
Vi kan bruge json_group_array() sådan her:
SELECT json_group_array(TypeId)
FROM Pets; Resultat:
[3,1,2,4]
Her oprettede jeg et array, der består af alle TypeId værdier.
Vi kan gå et skridt videre og videregive en anden JSON-funktion som argument til json_group_array() .
For eksempel, hvis vi ønskede at producere et JSON-objekt for hver række i databasen, kunne vi bruge json_object() funktion på bordet sådan her:
SELECT json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
FROM Pets; Resultat:
{"PetId":1,"PetName":"Homer","TypeId":3}
{"PetId":2,"PetName":"Yelp","TypeId":1}
{"PetId":3,"PetName":"Fluff","TypeId":2}
{"PetId":4,"PetName":"Brush","TypeId":4}
Vi kan derefter bruge json_group_array() funktion til at give et ydre array:
SELECT json_group_array(
json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
)
FROM Pets; Resultat:
[{"PetId":1,"PetName":"Homer","TypeId":3},{"PetId":2,"PetName":"Yelp","TypeId":1},{"PetId":3,"PetName":"Fluff","TypeId":2},{"PetId":4,"PetName":"Brush","TypeId":4}]
Nu, alle JSON-dokumenter, der blev produceret af json_object() er indesluttet i et array, der blev produceret af json_group_array() .