आप इसे SQL में कर सकते हैं, हालांकि यह सुंदर नहीं है।
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
आपको यह सुनिश्चित करने की आवश्यकता है कि सबक्वेरी n
प्रत्येक टैग में कम से कम शब्दों की संख्या होती है।
यहां SQLFiddle है जो इसे प्रदर्शित करता है।
यह मूल डेटा को अनुक्रमिक संख्याओं के साथ जोड़ रहा है। इसके बाद यह substring_index()
का उपयोग करके टैग स्ट्रिंग्स से nth मान निकालता है। ।
टैग की अधिकतम संख्या प्राप्त करने के लिए, आप यह कर सकते हैं:
select max(length(tags) - length(replace(tags, ',', 1))+1
from t