MySQL での条件付き連結に GROUP_CONCAT を利用する
データベース操作では、さまざまなニーズに合わせてデータをさまざまな形式に変換する必要があります。一般的なタスクの 1 つは、特定の識別子に関連付けられた複数の値を連結することです。 MySQL では、GROUP_CONCAT 関数は、このような連結を柔軟な方法で実行するための強力なツールを提供します。
次のデータを含む MySQL テーブルを考えてみましょう:
id | Name | Value |
---|---|---|
1 | A | 4 |
1 | A | 5 |
1 | B | 8 |
2 | C | 9 |
私たちの目的は、このデータを変換することです。特定の形式に変換します:
id | Column |
---|---|
1 | A:4,5,B:8 |
2 | C:9 |
この形式を実現するには、GROUP_CONCAT を利用して、各一意の識別子に関連付けられた複数の値を連結します。ソリューションの詳細な内訳は次のとおりです:
select id, group_concat(`Name` separator ',') as `ColumnName` from ( select id, concat(`Name`, ':', group_concat(`Value` separator ',')) as Name from mytbl group by id, Name ) tbl group by id;
説明:
別の方法として、名前でグループ化せずにすべての値を連結したい場合は、クエリを次のように変更できます。以下:
select id,group_concat(concat(`name`,':',`value`) separator ',') as Result from mytbl group by id
以上がMySQL の GROUP_CONCAT はどのようにして条件付き連結を実現できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。