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

SQL:<अन्य कॉलम के मान> के रूप में कॉलम का चयन करें

यदि आपके पास निश्चित संख्या में भाषा आईडी हैं, तो आप इसे इस प्रकार कर सकते हैं:

select id,
       max(case when LanguageId = 1 then text end) as "1",
       max(case when LanguageId = 2 then text end) as "2",
       max(case when LanguageId = 3 then text end) as "3"
from t
group by id;

यदि आप पहले से भाषा आईडी नहीं जानते हैं, तो आपको क्वेरी बनाने के लिए डायनेमिक SQL का उपयोग करना होगा और फिर इसे तैयार और निष्पादित करना होगा।

अगर लैंग्वेजिड डायनेमिक है:

select @s = concat('select id',
                   group_concat(concat(', max(case when LanguageId = ',
                                       LanguageId,
                                       ' then text end) as "',
                                       LanguageId, '"'
                                      )
                               ),
                   ' from t group by id'
                  )
from (select distinct LanguageId from t) t;

PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 'COUNT'/'GROUP BY' MySQL क्वेरी के लिए खाली परिणाम प्राप्त करना

  2. PHP और MYSQL का उपयोग करके फ़ील्ड खोज का संयोजन

  3. mySql - अल्पविराम से अलग किए गए मानों की सूची का उपयोग करके एक जुड़ाव बनाना

  4. अगली और पिछली कार्यक्षमता के साथ छवियों को एक-एक करके प्रदर्शित करें

  5. WHERE जॉइन पर क्लॉज एक्ज़ीक्यूशन टाइम में 4 सेकंड जोड़ रहा है