web-dev-qa-db-fra.com

GROUP_CONCAT séparateur de virgule - MySQL

J'ai une requête où j'utilise GROUP_CONCAT et un séparateur personnalisé, car mes résultats peuvent contenir des virgules: '----'

Tout cela fonctionne bien, mais il reste séparé par des virgules. Mon résultat est donc:

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

Comment puis-je le faire pour que le résultat soit:

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

Je pensais que c'était l'idée d'un séparateur personnalisé!

À défaut, pouvez-vous échapper des virgules dans vos résultats afin que je puisse exploser dans PHP par le GROUP_CONCAT virgule?

130
user984580

Il semble que vous manquiez le mot clé SEPARATOR dans la fonction GROUP_CONCAT .

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

Comme vous l'avez écrit, vous concaténez artists.artistname avec la chaîne '----' à l'aide du séparateur de virgule par défaut.

323
Joe Stefanelli

Requête pour réaliser votre exigence

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

Ou, si vous faites une scission - rejoignez:

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

Vous voudrez peut-être inclure WITHIN RECORD, comme ceci:

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

à partir de page API BigQuery

2
Roman