SQLite json_group_array()
functionは、集計内のすべての値で構成されるJSON配列を返す集計関数です。
つまり、引数で指定された値から配列を作成します。
構文
json_group_array(X)
ここでX
結果の配列が構成される要素を表します。
例
簡単な例を次に示します。
SELECT json_group_array( "Fritz" );
結果:
["Fritz"]
指定した値で配列が返されたことがわかります。
ただし、この関数の真の力は、集合データを使用するシナリオで示されます(以下のデータベースの例のように)。結局のところ、json_array()
を使用することもできたはずです。 上記の例の関数:
SELECT json_array( "Fritz" );
結果:
["Fritz"]
前述のように、この関数の真の力は集合体データの処理にあります。したがって、json_group_array()
通常、データベースを照会するときに使用されます。
データベースの例
次の表があるとします。
SELECT * FROM Pets;
結果:
+-------+---------+--------+ | PetId | PetName | TypeId | +-------+---------+--------+ | 1 | Homer | 3 | | 2 | Yelp | 1 | | 3 | Fluff | 2 | | 4 | Brush | 4 | +-------+---------+--------+
3つの列があり、それらの名前を確認できます。
json_group_array()
を使用できます このように:
SELECT json_group_array(TypeId)
FROM Pets;
結果:
[3,1,2,4]
ここでは、すべてのTypeId
で構成される配列を作成しました 値。
さらに一歩進んで、別のJSON関数を引数としてjson_group_array()
に渡すことができます。 。
たとえば、データベースの各行にJSONオブジェクトを生成する場合は、json_object()
を使用できます。 次のようにテーブル上で機能します:
SELECT json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
FROM Pets;
結果:
{"PetId":1,"PetName":"Homer","TypeId":3} {"PetId":2,"PetName":"Yelp","TypeId":1} {"PetId":3,"PetName":"Fluff","TypeId":2} {"PetId":4,"PetName":"Brush","TypeId":4}
その後、json_group_array()
を使用できます 外部配列を提供する関数:
SELECT json_group_array(
json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
)
FROM Pets;
結果:
[{"PetId":1,"PetName":"Homer","TypeId":3},{"PetId":2,"PetName":"Yelp","TypeId":1},{"PetId":3,"PetName":"Fluff","TypeId":2},{"PetId":4,"PetName":"Brush","TypeId":4}]
これで、json_object()
によって生成されたすべてのJSONドキュメント json_group_array()
によって生成された配列で囲まれています 。