2011-10-07 6 views
90

Ho una domanda in cui sto usando GROUP_CONCAT e un separatore personalizzato come i miei risultati possono contenere virgole: '----'group_concat virgola separatore - MySQL

Tutto questo funziona bene, ma è ancora separati da virgola, così la mia uscita è:

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

Come posso fare in modo l'output è:

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

ho pensato che questa era l'idea di un separatore personalizzato!

In caso contrario, puoi evitare le virgole nei risultati, quindi posso esplodere in PHP con le virgole GROUP_CONCAT?

+7

Mostraci il tuo codice. –

+0

Da dove vengono le virgole? Sono i separatori o parte dei risultati? Questa parte della domanda non mi è chiara. –

+1

GROUP_CONCAT (artist.artistname, '----') è la mia linea concat di gruppo - come puoi vedere, non ho messo la virgola come separatore - non sono nei risultati ma mostrano nell'output – user984580

risposta

241

Sembra che manchi la parola chiave SEPARATOR nella funzione GROUP_CONCAT.

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

Il modo in cui hai scritto, sei concatenare artists.artistname con la stringa '----' utilizzando il separatore predefinito virgola.

+3

Grazie - it sembra che a un certo punto ho letto un tutorial errato su group_concat. – user984580

1

Oppure, se si sta facendo una scissione - join:

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

Si consiglia di inclue WITHIN RECORD, in questo modo:

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

da BigQuery API page

5

provare questo

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

Hai risposto 6 anni dopo e non hai scritto altro che la risposta più votata :) – ElChupacabra