Je kunt dit in SQL doen, hoewel het niet mooi is.
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
U moet er zeker van zijn dat de subquery n
heeft ten minste het aantal woorden in elke tag.
Hier is de SQLFiddle die dit aantoont.
Dit is het kruisen van de originele gegevens met volgnummers. Vervolgens kiest het de n-de waarde uit de tags-strings, met behulp van substring_index()
.
Om het maximale aantal tags te krijgen, kunt u het volgende doen:
select max(length(tags) - length(replace(tags, ',', 1))+1
from t