Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql में एक पंक्ति को एकाधिक कॉलम में कैसे विभाजित करें?

पहले स्ट्रिंग को सामान्य करें, खाली स्थानों को हटा दें और सुनिश्चित करें कि अंत में एक % है:

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 की खूबियों में से एक नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सिम्फनी 2 के साथ सिद्धांत 2 डीबी वर्णसेट और संयोजन को पहचान नहीं रहा है

  2. हाइबरनेट - पूर्णांक प्रकार के लिए सही मानचित्रण कैसे प्रदान करें?

  3. MySql सेलेक्ट एएस - सभी फील्ड नामों को जोड़ें

  4. दो तिथियों के बीच MySQL सप्ताह की गणना

  5. जोड़ने के लिए रेडियो बटन मान