2010-09-28 16 views
21

Değerleri döndüren bir sorguya sahibim ama bunlara virgülle ayrılmış tek bir çıktı olarak ihtiyacım var ..alt sorgunun çıktısını sonuçlandırır mı?

Bu nedenle, çıktıları virgülle karıştırmaya çalıştım ama işe yaramadı mı?

select id from videos where duration=0; /// this would return some rows 

Ben concat ve concat_ws çalıştı ama örneğin çıkış 1,4,6 olmalıdır i virgül separtor

ile tüm satırların kimliklerini ihtiyaç

select concat(select concat(id,',') from videos where duration=0); 
select concat((select id from videos where duration=0),','); 
select concat_ws(',',(select id from videos where duration=0)); 

işe yaramadı 78,565

herhangi bir fikir?

+4

Eğer GROUP_CONCAT' dize kesti alırsa Yani, yükseltmek o 1024 ile sınırlıdır akılda tutmak 'kullanıyorsanız limit (zaman zaman bunu gözden kaçırma eğilimindeyim;)) – DrColossos

+0

Dün bunu denediğimde tam olarak böyle oldu .. Sorgum 2500'den fazla değer döndürüyordu .. Limiti nasıl artırabilirim? – Vijay

cevap

29

group_concat budur.

select group_concat(id) as video_list 
from videos 
where duration=0 
5

Kullanım group_concat:

Bu fonksiyon, bir grup birleştirilmiş olmayan NULL değerlere sahip bir dize sonuç döndürür. NULL olmayan bir değer yoksa NULL döndürür.

SELECT 
    GROUP_CONCAT(id) 
FROM 
    videos 
WHERE 
    duration=0