テーブルBに変換したいテーブルAがあるとしましょう。
表Bの値は、常に同じ数のフィールドを持つCSV形式のテキストである必要があります。
まず、特定のカテゴリが処理する値の最大数(この場合、カテゴリ1、2、および4の3つの値)を知る必要があります。
次に、その変数を使用して、カテゴリに「欠落」値がある場合に、GROUP_CONCATの最後に空のフィールド( "、")を「追加」する必要があります。
各セルに「一貫性のある」CSVを含めるには、これが必要です。このデータを処理するために使用しているアプリケーションは、行ごとに列番号が異なるCSVを適切に解釈しません...
表A
+----+----------+-------+
| id | category | value |
+----+----------+-------+
| 1 | 1 | a |
| 2 | 1 | b |
| 3 | 1 | c |
| 4 | 2 | d |
| 5 | 2 | e |
| 6 | 2 | f |
| 7 | 3 | g |
| 8 | 3 | h |
| 9 | 4 | i |
| 10 | 4 | j |
| 11 | 4 | k |
| 12 | 5 | l |
+----+----------+-------+
表B
+--------------+---------------------+
| id(category) | value(group_concat) |
+--------------+---------------------+
| 1 | a,b,c |
| 2 | d,e,f |
| 3 | g,h, |
| 4 | i,j,k |
| 5 | l,, |
+--------------+---------------------+