2010-09-28 34 views
21

tôi có một truy vấn sẽ trả về giá trị nhưng tôi cần chúng như một đầu ra riêng biệt bằng dấu phẩy ..concat đầu ra của truy vấn phụ?

Vì vậy, tôi đã cố gắng kết xuất đầu ra bằng dấu phẩy nhưng nó không hoạt động?

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

tôi đã cố gắng concat và concat_ws nhưng đã không làm việc

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)); 

tôi cần của id của tất cả các hàng với dấu phẩy separtor

ví dụ sản lượng nên được 1,4,6 , 78,565

bất kỳ ý tưởng nào?

+4

Nếu bạn đang sử dụng 'GROUP_CONCAT' ghi nhớ nó được giới hạn trong 1024. Vì vậy, nếu chuỗi của bạn bị cắt đứt, nâng cao giới hạn (Tôi có xu hướng bỏ qua điều đó theo thời gian;)) – DrColossos

+0

Đó chính xác là những gì đã xảy ra khi tôi thử nó hôm qua .. Truy vấn của tôi sẽ trả về hơn 2500 giá trị .. Làm thế nào tôi có thể tăng giới hạn? – Vijay

Trả lời

29

Đây là những gì group_concat thực hiện.

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

Sử dụng group_concat:

Hàm này trả về một chuỗi kết quả với các giá trị phi NULL nối từ một nhóm. Nó trả về NULL nếu không có giá trị không NULL.

SELECT 
    GROUP_CONCAT(id) 
FROM 
    videos 
WHERE 
    duration=0 
Các vấn đề liên quan