2011-12-01 3 views
8

私は現在、タグを戻すSQLをいくつか持っています。ので、私の現在のデータは同様です....彼らは別々のIDを持っているはずですが、そうではない。mysqlは異なる行をカンマ区切りリストの列に選択します

Microsoft | GGG | 1 | 167 
Microsoft | GGG | 1 | 2 
Microsoft | GGG | 1 | 1 

私は何をしたいことは一つだけの行区切りに連結最後の列に戻ってきていていますリストは次のようになります。

Microsoft | GGG | 1 | 167, 2, 1 

私はこれにmySQL 5を使用しています。他の3つの列をカバーGROUP BYこのため

+0

私はあなたのフラグに求めているのか分かりません。間違った質問をした場合は、提供された回答を評価し、ここで質問した質問に答えるかどうかを確認し、正しい答えを選択して質問を終了します。あなたはあなたの*本当の*質問に行くことができます。 – Will

答えて

21

使用GROUP_CONCAT()は、:

SELECT 
    name, -- Microsoft 
    other, -- GGG 
    other2, -- 1 
    GROUP_CONCAT(id) AS ids 
FROM tbl 
GROUP BY name, other, other2 
+0

'ids'が大きなセットである場合は、次のように十分大きな値を設定することを忘れないでください:' SET SESSION group_concat_max_len = 1000000; ' – bishop

+0

これは明確な値を与えません。 – geoidesic

+0

@geoidesicあなたが意味するところはわかりません。この質問では別の値は求められませんでしたが、[GROUP_CONCAT() 'docs](https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html# function_group-concat)、文字列の戻り値を重複排除するための 'DISTINCT'キーワードをサポートしています。 –

関連する問題