MySQL の CONCAT 内で GROUP_CONCAT を使用する
共通の値でグループ化しながら複数の行を 1 つの文字列に連結するには、 GROUP_CONCAT 関数。実際の例でその応用を見てみましょう。
質問:
次のようなデータを含む mytbl という名前のテーブルがあるとします。
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 と 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;
説明:
このネストされた GROUP_CONCAT と CONCAT の組み合わせにより、各 ID がカンマ区切りの文字列に関連付けられた、目的の出力を生成できます。名前とそれに対応する値。
以上がMySQL で GROUP_CONCAT と CONCAT を使用して複数の行を 1 つの文字列に連結する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。