mysqlで複数の行を複数の列に変換する方法は何ですか?

MySQL内では、複数行のデータを1行にまとめ、複数列に分割するためにGROUP_CONCAT関数を使用できます。

例えば、以下のデータ表があります。

+----+-------+---------+
| ID | Name  | Country |
+----+-------+---------+
| 1  | John  | USA     |
| 2  | Alice | UK      |
| 3  | Tom   | Japan   |
+----+-------+---------+

Name列を1つの列に統合し、Country列を別の列に統合するには、GROUP_CONCAT関数を使用できます。

SELECT GROUP_CONCAT(Name) AS Names, GROUP_CONCAT(Country) AS Countries
FROM table_name;

結果は次の通りです:

+-----------------+---------------------+
| Names           | Countries           |
+-----------------+---------------------+
| John,Alice,Tom  | USA,UK,Japan        |
+-----------------+---------------------+

GROUP_CONCATはデフォルトでコンマを区切り文字として使用しますが、SEPARATORパラメータを指定することで区切り文字を変更することができます。

bannerAds