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?


¿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.


17

Consulta para lograr tu requerimiento

SELECT id,GROUP_CONCAT(text SEPARATOR ' ') AS text FROM table_name group by id;

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.