GROUP_CONCAT Komma-Trennzeichen - MySQL

145

Ich habe eine Abfrage, wo ich verwende GROUP_CONCAT und ein benutzerdefiniertes Trennzeichen, da meine Ergebnisse Kommas enthalten können: '----'

Dies alles funktioniert gut, es ist jedoch immer noch durch Kommas getrennt, daher lautet meine Ausgabe:

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

Wie kann ich es so machen, dass die Ausgabe ist:

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

Ich dachte, das wäre die Idee eines benutzerdefinierten Trennzeichens!

Wenn dies nicht der Fall ist, können Sie Kommas in Ihren Ergebnissen umgehen, damit ich in PHP durch GROUP_CONCATKommas explodieren kann ?

user984580
quelle
Woher kommen die Kommas? Sind sie die Trennzeichen oder Teil der Ergebnisse? Dieser Teil der Frage ist mir nicht klar.
Matt Fenwick
1
GROUP_CONCAT (artist.artistname, '----') ist meine Gruppen-Concat-Zeile - wie Sie sehen, habe ich kein Komma als Trennzeichen gesetzt - sie sind nicht in den Ergebnissen enthalten, sondern werden in der Ausgabe
angezeigt

Antworten:

352

Anscheinend fehlt Ihnen das Schlüsselwort SEPARATOR in der Funktion GROUP_CONCAT .

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

So wie Sie es geschrieben haben, verketten Sie artists.artistnamedie '----'Zeichenfolge mit dem Standard-Komma-Trennzeichen.

Joe Stefanelli
quelle
17

Abfrage, um Ihre Anforderung zu erfüllen

SELECT id,GROUP_CONCAT(text SEPARATOR ' ') AS text FROM table_name group by id;
Vallabh Bothre
quelle
Die Anforderung war, ----als Separator zu verwenden.
ks1322
1

Oder wenn Sie einen Split machen - Join:

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

Vielleicht möchten Sie Folgendes einschließen WITHIN RECORD:

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

von der BigQuery API-Seite

römisch
quelle