Sie können dies in SQL tun, obwohl es nicht schön ist.
select distinct reverse(substring_index(reverse(substring_index(tags, ',', n.n)), ',', 1)) as word
from t cross join
(select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n
having word is not null
Sie müssen sicherstellen, dass die Unterabfrage n
hat mindestens die Anzahl der Wörter in jedem Tag.
Hier ist die SQLFiddle, die dies demonstriert.
Dies ist eine Querverbindung der Originaldaten mit fortlaufenden Nummern. Dann wählt es den n-ten Wert aus den Tags-Strings aus, indem es substring_index()
verwendet .
Um die maximale Anzahl an Tags zu erhalten, können Sie Folgendes tun:
select max(length(tags) - length(replace(tags, ',', 1))+1
from t