2017-05-23 4 views
1

Ich habe vier Spalten. Zwei Spalten sind durch Kommas getrennt. Ich versuche, einzelne Datensätze für diese durch Komma getrennten Werte zu erhalten.Trennen von Datensätzen basierend auf einer Spalte

col col2 col3 col4  
------------------------ 
1  1,2 2,3 4 
2  3,4 5  7 
4  5  3  5 

Mein Ergebnis gesetzt Gesöff sein

col1 col2 col3 col4 
-------------------------- 
1  1  2  4 
1  1  3  4 
1  2  2  4 
1  2  3  4 
2  3  5  7 
2  4  5  7 
4  5  3  5 

ich viele versucht haben. Aber konnte keinen genauen Datensatz bekommen. Vielen Dank im Voraus

+2

was das maximalen Komma ist man in einer Spalte haben kann? –

+0

Nicht so einfach, wie ich es verstehe: https://stackoverflow.com/questions/2696884/split-value-from-one-field-to-two –

+0

max von 5 Kommas – mano

Antwort

0

Hier ist eine Methode, die zwei abgeleitete Tabellen von Zahlen verwendet das n-ten Element aus der Liste zu erhalten:

select col1, 
     substring_index(substring_index(col2, ',', n2.n), ',', -1) as col2, 
     substring_index(substring_index(col3, ',', n3.n), ',', -1) as col3, 
     col4 
from t join 
    (select 1 as n union all select 2 union all select 3 union all select 4 union all select 5 
    ) n2 
    on t.col2 like concat(repeat('%,', n2.n - 1), '%') join 
    (select 1 as n union all select 2 union all select 3 union all select 4 union all select 5 
    ) n3 
    on t.col3 like concat(repeat('%,', n3.n - 1), '%') 
Verwandte Themen