Separador de comas GROUP_CONCAT - MySQL

145

Tengo una consulta donde estoy usando GROUP_CONCATy un separador personalizado ya que mis resultados pueden contener comas: '----'

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 la salida sea:

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

¡Pensé que esta era la idea de un separador personalizado!

De lo contrario, ¿puedes escapar de las comas en tus resultados, para que pueda explotar en PHP por las GROUP_CONCATcomas?

usuario984580
fuente
¿De dónde vienen las comas? ¿Son los separadores, o parte de los resultados? Esa parte de la pregunta no me queda clara.
Matt Fenwick
1
GROUP_CONCAT (artists.artistname, '----') es la línea de concat de mi grupo; como puede ver, no he puesto una coma como separador; no están en los resultados, pero se muestran en la salida
user984580

Respuestas:

352

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

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

De la forma en que lo has escrito, estás concatenando artists.artistnamecon la '----'cadena usando el separador de coma predeterminado.

Joe Stefanelli
fuente
17

Consulta para lograr tu requerimiento

SELECT id,GROUP_CONCAT(text SEPARATOR ' ') AS text FROM table_name group by id;
Vallabh Bothre
fuente
El requisito era usarlo ----como separador.
ks1322
1

O, si está haciendo una división, únase:

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

Es posible que desee inclue WITHIN RECORD, de esta manera:

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

de la página de BigQuery API

romano
fuente