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

COLUMN SPLIT के साथ MySQL GROUP_CONCAT

यदि आप GROUP_CONCAT प्रविष्टियों की संख्या जानते हैं (मेरा मतलब है कि आईडी =1 के मामले में 3 फ़ील्ड संयुक्त हैं और 2 फ़ील्ड 2 आदि के मामले में संयुक्त हैं), तो एक गंदा तरीका है।

SELECT ID, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 1), ',', -1) AS CODE1,
If(  length(GROUP_CONCAT(NAME)) - length(replace(GROUP_CONCAT(NAME), ',', ''))>1,  
       SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 2), ',', -1) ,NULL) 
           as CODE2,
   SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 3), ',', -1) AS CODE3
FROM test
GROUP BY ID;

आउटपुट:

ID  CODE1   CODE2   CODE3
1   A          B    C
2   D       (null)  E
3   F          G    H

उपरोक्त क्वेरी मानती है कि आप GROUP_CONCAT-ing 3 फ़ील्ड हैं। यदि आप गतिशील रूप से क्वेरी उत्पन्न कर रहे हैं तो आप कोशिश कर सकते हैं। SQLFIDDLE

संपादित करें: नोट:प्रत्येक पंक्ति के लिए कोड भिन्न हो सकता है।(इसे अनदेखा करना)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ajax, PHP, MYSQL का उपयोग करके प्रपत्र अपडेट करें

  2. MySQL डेटाबेस में खोजते समय '%' चिह्न का मिलान करें

  3. त्रुटि 1062 - 'प्राथमिक' कुंजी के लिए डुप्लिकेट प्रविष्टि '127' - कारण नहीं मिल रहा है

  4. फर्जी विदेशी कुंजी बाधा विफल

  5. पुनरावर्ती MySQL क्वेरी?