ホームページ >データベース >mysql チュートリアル >MySQL の GROUP_CONCAT および CONCAT 関数は、どのようにして複数の行を単一のカンマ区切りの文字列に変換できますか?

MySQL の GROUP_CONCAT および CONCAT 関数は、どのようにして複数の行を単一のカンマ区切りの文字列に変換できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-15 08:36:16415ブラウズ

How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

MySQL でのデータ変換に GROUP_CONCAT と CONCAT を利用する

MySQL では、複数の行のデータを 1 つの文字列に組み合わせることができます。 GROUP_CONCAT 関数の使用。次の情報を含むテーブルについて考えてみましょう:

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;

このクエリは 2 段階で動作します。

  1. 最初に id 列と Name 列でグループ化し、GROUP_CONCAT 関数を使用して各グループ内の値を連結します。これにより、ID と名前の一意のペアを含む結果セットが生成されます。値はカンマ区切り形式で指定されます。
  2. ID による外側のグループ化操作により、内側のクエリの結果がさらに結合され、結果として単一行が生成されます。それぞれの一意の ID と、名前:値のペアのカンマ区切りリスト。

このクエリを実行すると、次の行を含む目的のデータ変換が得られます。形式:

id Column
1 A:4,5,B:8
2 C:9

以上がMySQL の GROUP_CONCAT および CONCAT 関数は、どのようにして複数の行を単一のカンマ区切りの文字列に変換できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。