पहले स्ट्रिंग को सामान्य करें, खाली स्थानों को हटा दें और सुनिश्चित करें कि अंत में एक % है:
select replace(concat(user_location,'%'),'%%','%') as str
from YourTable where user_id = 1
फिर हम एक ट्रिक से प्रविष्टियों की संख्या गिन सकते हैं। '%' को '%' से बदलें, और स्ट्रिंग में जोड़े गए रिक्त स्थान की संख्या गिनें। उदाहरण के लिए:
select length(replace(str, '%', '% ')) - length(str)
as LocationCount
from (
select replace(concat(user_location,'%'),'%%','%') as str
from YourTable where user_id = 1
) normalized
सबस्ट्रिंग_इंडेक्स का उपयोग करके, हम कई स्थानों के लिए कॉलम जोड़ सकते हैं:
select length(replace(str, '%', '% ')) - length(str)
as LocationCount
, substring_index(substring_index(str,'%',1),'%',-1) as Loc1
, substring_index(substring_index(str,'%',2),'%',-1) as Loc2
, substring_index(substring_index(str,'%',3),'%',-1) as Loc3
from (
select replace(concat(user_location,'%'),'%%','%') as str
from YourTable where user_id = 1
) normalized
आपके उदाहरण के लिए US%UK%JAPAN%CANADA
, यह प्रिंट करता है:
LocationCount Loc1 Loc2 Loc3
4 US UK JAPAN
तो आप देखते हैं कि यह किया जा सकता है, लेकिन स्ट्रिंग्स को पार्स करना SQL की खूबियों में से एक नहीं है।