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

SQL मानों को कई पंक्तियों में विभाजित करता है

यदि आप एक संख्या तालिका बना सकते हैं, जिसमें विभाजित करने के लिए 1 से लेकर अधिकतम फ़ील्ड तक की संख्याएँ हों, तो आप इस तरह के समाधान का उपयोग कर सकते हैं:

select
  tablename.id,
  SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
from
  numbers inner join tablename
  on CHAR_LENGTH(tablename.name)
     -CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
order by
  id, n

कृपया फिडल देखें यहां

यदि आप कोई तालिका नहीं बना सकते हैं, तो इसका समाधान यह हो सकता है:

select
  tablename.id,
  SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
from
  (select 1 n union all
   select 2 union all select 3 union all
   select 4 union all select 5) numbers INNER JOIN tablename
  on CHAR_LENGTH(tablename.name)
     -CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
order by
  id, n

एक उदाहरण फिडेल है यहां



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एक स्ट्रिंग को कैसे विभाजित करें

  2. पुराने प्रमाणीकरण का उपयोग करके MySQL 4.1+ से कनेक्ट नहीं हो सकता

  3. MySQL में UPPER () फ़ंक्शन कैसे काम करता है

  4. Nodejs व्यक्त करते हैं और जो मैं उम्मीद करता हूं वह नहीं करने का वादा करता है

  5. MySQL कार्यक्षेत्र विकल्प - ClusterControl का पॉइंट-एंड-क्लिक GUI