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パラメータを指定することで区切り文字を変更することができます。