2010-09-28 31 views
21

tengo una consulta que devolvería los valores pero los necesito como salida única separada por comas ...concat la salida de la subconsulta?

¿Intenté concat la salida con la coma pero no funcionó?

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

me trataron concat y CONCAT_WS pero no funcionó

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

necesito los identificadores de todas las filas con el separtor coma

por ejemplo, la salida debe ser 1,4,6 , 78,565

¿Alguna idea?

+4

Si está utilizando 'GROUP_CONCAT' tener en cuenta que se limita a 1024. Así que si la cadena se corta, aumentar el límite (tiendo a pasar por alto eso de vez en cuando;)) – DrColossos

+0

Eso es exactamente lo que sucedió cuando lo intenté ayer ... Mi consulta devolvería más de 2500 valores ... ¿Cómo puedo aumentar el límite? – Vijay

Respuesta

29

Esto es lo que group_concat hace.

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

Uso group_concat:

Esta función devuelve una cadena resultado con los valores no NULL concatenados de un grupo. Devuelve NULL si no hay valores no NULL.

SELECT 
    GROUP_CONCAT(id) 
FROM 
    videos 
WHERE 
    duration=0