Separatore di virgole GROUP_CONCAT - MySQL


145

Ho una query in cui sto utilizzando GROUP_CONCATe un separatore personalizzato poiché i miei risultati possono contenere virgole: '----'

Tutto funziona bene, tuttavia è ancora separato da virgola, quindi il mio output è:

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

Come posso farlo in modo che l'output sia:

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

Ho pensato che questa fosse l'idea di un separatore personalizzato!

In caso contrario, puoi sfuggire alle virgole nei risultati, così posso esplodere in PHP dalle GROUP_CONCATvirgole?


Da dove vengono le virgole? Sono i separatori o parte dei risultati? Quella parte della domanda non mi è chiara.
Matt Fenwick,

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

Risposte:


352

Sembra che manchi la parola chiave SEPARATOR nella funzione GROUP_CONCAT .

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

Nel modo in cui l'hai scritto, stai concatenando artists.artistnamela '----'stringa usando il separatore di virgola predefinito.


17

Richiesta per raggiungere il tuo requisito

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

Il requisito era utilizzare ----come separatore.
ks1322,

1

Oppure, se stai facendo una divisione - unisciti:

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

Potresti voler includere WITHIN RECORD, in questo modo:

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

dalla pagina API di BigQuery

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.