2012-04-27 22 views
6

Cuando pruebo una consulta usando group_concat funciona bien y muestra la lista delimitada por comas adecuada en la fila. Sin embargo, cuando hago clic en "Exportar" en la parte inferior del conjunto de resultados, aparece un error que dice #1630 - FUNCTION <databasename>.group_concat does not exist.MySql GROUP_CONCAT falla al exportar desde phpmyadmin

Parece tratar la referencia a GROUP_CONCAT como una función definida por el usuario. ¿Hay alguna forma de calificar correctamente el nombre de la función para que pueda encontrarlo al exportar? No he tenido problemas con la exportación antes cuando no intento usar group_concat.

Ésta es la consulta:

SELECT *, group_concat(distinct g.name) FROM `users` u 
left join usergroupassoc a on u.userid = a.userid 
left join usergroups g on a.usergroupid = g.usergroupid 
where u.enddate is null and g.enddate is null group by u.userid 
+0

Se puede publicar la consulta? –

+4

Parece ser sensible al espaciado entre 'group_concat' y el paréntesis de apertura. ¿Puedes verificar que no hay espacios allí en la consulta real que estabas ejecutando? Fuente: http://www.dreamincode.net/forums/topic/247573-distinct/ – mellamokb

+0

Esa es una posibilidad: creo que phpmyadmin está transformando la consulta antes de pasarla a MySql. Sin embargo, no parece poner un espacio antes del paréntesis de apertura, pero quizás esté haciendo algo más que no le gusta a MySql. – devios1

Respuesta

1

GROUP_CONCAT utiliza una coma como delimitador por defecto, que puede estar impidiendo phpmyadmin de generar el archivo de exportación correctamente.

intente especificar un punto y coma como delimitador GROUP_CONCAT:

SELECT *, group_concat(distinct g.name SEPARATOR ';') FROM `users` u 
left join usergroupassoc a on u.userid = a.userid 
left join usergroups g on a.usergroupid = g.usergroupid 
where u.enddate is null and g.enddate is null group by u.userid;