2016-06-23 12 views
0

Wie teile ich Group_Concat() Ergebnis in verschiedene Spalten? Ich möchte es nicht in der gleichen Zelle zeigen, getrennt durch Komma.Teilen der Ausgabe von MySQL Group_Concat()

+1

tun, was Sie buchstäblich vorschlagen, Namensgebung eine kommagetrennte Zeichenfolge explodiert, ist ein Haufen Arbeit in MySQL. Was Sie wirklich suchen, ist eine Pivot-Abfrage, bei der Sie Spalten für den CSV-Inhalt erstellen. Können Sie uns einen Mustertisch zeigen, damit wir eine bessere Vorstellung davon haben, was Sie vorhaben? –

Antwort

0

Sie können SUBSTRING_INDEX zweimal nach dem Einschließen in eine subquery verwenden, falls Sie das Trennzeichen kennen.

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1) 
    FROM (
     SELECT GROUP_CONCAT(...) AS SomeColumn 
      FROM ... 
    ) AS SomeTable 
  1. Die erste SUBSTRING_INDEX bekommt die Zeichenfolge zuerst -> n
  2. Der zweite SUBSTRING_INDEX entfernt die Zeichenfolge aus zuerst -> n - 1

prüfen diese SQLFiddle Beispiel

In Ihrem Fall, wenn Sie kennen die Anzahl der Spalten, Ihre Abfrage würde in etwa so aussehen (vorausgesetzt, Sie durch Komma getrennt 5 Saiten):

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 1), '.', -1) 
    , SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 2), '.', -1) 
    , SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1) 
    , SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 4), '.', -1) 
    , SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 5), '.', -1) 
    FROM (
     SELECT GROUP_CONCAT(...) AS SomeColumn 
      FROM ... 
    ) AS SomeTable