ホームページ > データベース > mysql チュートリアル > MySQL で GROUP_CONCAT と CONCAT を使用して複数の行を 1 つの文字列に連結する方法

MySQL で GROUP_CONCAT と CONCAT を使用して複数の行を 1 つの文字列に連結する方法

Mary-Kate Olsen
リリース: 2024-12-13 01:00:10
オリジナル
463 人が閲覧しました

How to Concatenate Multiple Rows into a Single String Using GROUP_CONCAT and CONCAT in MySQL?

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;
ログイン後にコピー

説明:

  • 最も内側のクエリは、ID と名前の両方でデータをグループ化し、Value 列をコンマとして連結します。各グループの区切り文字。
  • 外側のクエリは結果を ID でグループ化し、以前のクエリを連結します。連結された Name 文字列。これには、各 ID 内の各 Name の値が含まれます。

このネストされた GROUP_CONCAT と CONCAT の組み合わせにより、各 ID がカンマ区切りの文字列に関連付けられた、目的の出力を生成できます。名前とそれに対応する値。

以上がMySQL で GROUP_CONCAT と CONCAT を使用して複数の行を 1 つの文字列に連結する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート