GROUP_CONCAT separador de vírgulas - MySQL


145

Tenho uma consulta em que estou usando GROUP_CONCATe um separador personalizado, pois meus resultados podem conter vírgulas: '----'

Isso tudo funciona bem, no entanto, ainda é separado por vírgula, então minha saída é:

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

Como posso fazer isso para que a saída seja:

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

Eu pensei que essa era a idéia de um separador personalizado!

Caso contrário, você pode escapar de vírgulas em seus resultados, para que eu possa explodir em PHP pelas GROUP_CONCATvírgulas?


De onde vêm as vírgulas? Eles são os separadores ou parte dos resultados? Essa parte da pergunta não está clara para mim.
Matt Fenwick

1
GROUP_CONCAT (artists.artistname, '----') é a minha linha de concatenação de grupo - como você pode ver, não coloquei vírgula como separador - eles não aparecem nos resultados, mas são exibidos na saída
user984580

Respostas:


352

Parece que você está perdendo a palavra-chave SEPARATOR na função GROUP_CONCAT .

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

Do jeito que você escreveu, você está concatenando artists.artistnamecom a '----'string usando o separador de vírgula padrão.



1

Ou, se você estiver fazendo uma divisão - participe:

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

Você pode querer incluir WITHIN RECORD, assim:

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

da página da API do BigQuery

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.