sql >> データベース >  >> RDS >> Mysql

JSON_ARRAYAGG()–MySQLのクエリの行からJSON配列を作成します

    多くのMySQL集計関数の中には、JSON_ARRAYAGG()と呼ばれるものがあります。 。この関数を使用すると、結果セットを単一のJSON配列として集約できます。結果セットの各行は、配列内の単一の要素として終了します。

    配列内の要素の順序は未定義です。

    構文

    構文は次のようになります:

    JSON_ARRAYAGG(col_or_expr)
    

    col_or_exprの場所 は、単一の値に評価される列または式です。

    実例を示します。

    JSON_ARRAYAGG()なしで実行できる一般的なクエリは次のとおりです。 機能:

    SELECT 
      District AS 'State',
      Name AS 'City'
    FROM City
    WHERE CountryCode = 'AUS'
    ORDER BY State;
    

    結果:

    +-----------------+---------------+
    | State           | City          |
    +-----------------+---------------+
    | Capital Region  | Canberra      |
    | New South Wales | Sydney        |
    | New South Wales | Newcastle     |
    | New South Wales | Central Coast |
    | New South Wales | Wollongong    |
    | Queensland      | Brisbane      |
    | Queensland      | Gold Coast    |
    | Queensland      | Townsville    |
    | Queensland      | Cairns        |
    | South Australia | Adelaide      |
    | Tasmania        | Hobart        |
    | Victoria        | Melbourne     |
    | Victoria        | Geelong       |
    | West Australia  | Perth         |
    +-----------------+---------------+
    

    そのクエリを調整して、各都市が配列の要素になるようにすることができます。これを行うには、Nameを渡すだけです。 列(都市の名前)からJSON_ARRAYAGG()へ 機能。

    GROUP BYも使用します 結果をDistrictでグループ化する句 列(この場合、Stateという名前のこの列のエイリアスを作成しました 。

    SELECT 
      District AS 'State',
      JSON_ARRAYAGG(Name) AS 'Cities'
    FROM City
    WHERE CountryCode = 'AUS'
    GROUP BY State;
    

    結果:

    +-----------------+--------------------------------------------------------+
    | State           | Cities                                                 |
    +-----------------+--------------------------------------------------------+
    | Capital Region  | ["Canberra"]                                           |
    | New South Wales | ["Sydney", "Newcastle", "Central Coast", "Wollongong"] |
    | Queensland      | ["Brisbane", "Gold Coast", "Townsville", "Cairns"]     |
    | South Australia | ["Adelaide"]                                           |
    | Tasmania        | ["Hobart"]                                             |
    | Victoria        | ["Melbourne", "Geelong"]                               |
    | West Australia  | ["Perth"]                                              |
    +-----------------+--------------------------------------------------------+
    

    JSON_OBJECTAGG()も参照してください クエリからJSONオブジェクトを作成できる関数。


    1. Oracle PL / SQL:データを表からCSVにエクスポート

    2. PostgreSQLを使用してテーブル名から列属性クエリを取得するにはどうすればよいですか?

    3. 'SELECT'ステートメントの'IF'-列の値に基づいて出力値を選択します

    4. DROPデータベースのアクセス許可なしでコマンドラインからすべてのMySQLテーブルを削除するにはどうすればよいですか?