2011-10-07 21 views
90

Tengo una consulta en la que estoy usando GROUP_CONCAT y un separador personalizado como mis resultados pueden contener comas: '----'GROUP_CONCAT coma separador - MySQL

Todo esto funciona bien, sin embargo, todavía está separado por comas, por lo que mi salida es:

Result A----,Result B----,Result C---- 

¿Cómo puedo hacer que lo que la salida es:

Result A----Result B----Result C---- 

pensé que esto era la idea de un separador personalizado!

En su defecto, ¿puede escapar de las comas en sus resultados, por lo que puedo explotar en PHP por el GROUP_CONCAT comas?

+7

Muéstranos tu código. –

+0

¿De dónde vienen las comas? ¿Son ellos los separadores, o parte de los resultados? Esa parte de la pregunta no está clara para mí. –

+1

GROUP_CONCAT (artists.artistname, '----') es mi línea de grupo concat - como puede ver, no he puesto la coma como separador - no están en los resultados, pero se muestran en la salida – user984580

Respuesta

241

Parece que le falta la palabra clave SEPARATOR en la función GROUP_CONCAT.

GROUP_CONCAT(artists.artistname SEPARATOR '----') 

La forma en que has escrito, usted es la concatenación de artists.artistname con la cadena '----' utilizando la coma como separador predeterminado.

+3

Gracias - parece que leí un tutorial erróneo sobre group_concat en algún momento. – user984580

1

O, si usted está haciendo una división - participar:

GROUP_CONCAT(split(thing, " "), '----') AS thing_name, 

es posible que desee inclue WITHIN RECORD, así:

GROUP_CONCAT(split(thing, " "), '----') WITHIN RECORD AS thing_name, 

de BigQuery API page

5

probar este

GROUP_CONCAT(artists.artistname SEPARATOR '----') 
+1

Respondió 6 años después y no escribió nada más que la respuesta más votada :) – ElChupacabra