¿Cómo usar GROUP BY para concatenar cadenas en MySQL?

Básicamente, la pregunta es cómo salir de esto:

 cadena de identificación
 1 A
 1 B
 2 C

a esto:

 cadena de identificación
 1 AB
 2 C

SELECT id, GROUP_CONCAT(string SEPARATOR ' ') FROM table GROUP BY id; 

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

Desde el enlace anterior, GROUP_CONCAT : esta function devuelve un resultado de cadena con los valores concatenados no NULL de un grupo. Devuelve NULL si no hay valores no NULL.

 SELECT id, GROUP_CONCAT( string SEPARATOR ' ') FROM table GROUP BY id 

Más detalles aquí .

Desde el enlace anterior, GROUP_CONCAT : esta function devuelve un resultado de cadena con los valores concatenados no NULL de un grupo. Devuelve NULL si no hay valores no NULL.

 SELECT id, GROUP_CONCAT(CAST(string as CHAR)) FROM table GROUP BY id 

Te dará una cadena delimitada por comas

 SET group_concat_max_len=100000000 
 SELECT id, GROUP_CONCAT(string SEPARATOR ' ') FROM table GROUP BY id; 

: – En MySQL, puede get los valores concatenados de las combinaciones de expresiones. Para eliminar valores duplicates, use la cláusula DISTINCT . Para orderar los valores en el resultado, use la cláusula ORDER BY. Para orderar en order inverso , agregue la palabra key DESC (descendente) al nombre de la columna que está orderando en la cláusula ORDER BY. El valor pnetworkingeterminado es order ascendente; esto se puede especificar explícitamente usando la palabra key ASC. El separador pnetworkingeterminado entre los valores de un grupo es coma (","). Para especificar un separador explícitamente, use SEPARATOR seguido del valor literal de la cadena que debe insertse entre los valores del grupo. Para eliminar el separador por completo, especifique SEPARATOR '' .

 GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) 

O

 mysql> SELECT student_name, -> GROUP_CONCAT(DISTINCT test_score -> ORDER BY test_score DESC SEPARATOR ' ') -> FROM student -> GROUP BY student_name; 

Grandes respuestas. También tuve un problema con NULLS y logré resolverlo incluyendo un COALESCE dentro de GROUP_CONCAT. Ejemplo de la siguiente manera:

 SELECT id, GROUP_CONCAT(COALESCE(string,'') SEPARATOR ' ') FROM table GROUP BY id; 

Espero que esto ayude a alguien más