2011-12-01 22 views
8

Şu anda geri etiketleri getiren bazı sql'lerim var. onlar ayrı kimlikleri olmalı, ama onlar değil .... yani benim şimdiki veriler gibidir do i tek satır bir sınırlandırılmış içine birleştirilmiş Son sütundaki ile geri gelmek zorunda yapmak istiyorum nemysql virgülle ayrılmış liste sütununa ayrı satırlar seçin

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

gibi liste:

Microsoft | GGG | 1 | 167, 2, 1 

Bunun için mySQL 5 kullanıyorum. Diğer üç sütun kapsayan GROUP BY ile bunun için

+0

ben size bayrağa soruyorsun bilmiyorum. Yanlış soruyu sorduysanız, verilen cevapları değerlendirin, burada sorduğunuz soruya cevap verip vermediğine bakın ve doğru cevabı seçerek soruyu kapatın. Ardından, * gerçek * sorunuzu sorabilirsiniz. – Will

cevap

21

Kullanım GROUP_CONCAT():

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

Ve 'ids' büyük bir set olması durumunda, için yeterince büyük bir değer ayarlamayı unutmayın: SET SESSION group_concat_max_len = 1000000;' – bishop

+0

Bu, farklı değerler vermez. – geoidesic

+0

@geoidesic Nerede demek istediğinizden emin değilsiniz. Soru, farklı değerler istemedi, ancak [GROUP_CONCAT()] dokümanlarını okuduysanız (https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html# function_group-concat) dizgenin dönüş değerini iptal etmek için bir 'DISTINCT' anahtar sözcüğünü desteklediğini göreceksiniz. –

İlgili konular