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

MYSQL में कॉलम को पंक्तियों में बदलने की आवश्यकता है

हो सकता है कि नीचे दिया गया समाधान आपकी समस्या को हल करने में आपकी मदद करे, आपको अपनी तालिका संरचना के अनुसार कुछ बदलाव करने होंगे।

इस समाधान के लिए आपको एक संग्रहित प्रक्रिया बनानी होगी।

अगर यह आपकी टेबल संरचना है:

CREATE TABLE `school` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(500) DEFAULT NULL,
  `value` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS=1;

यदि आपकी तालिका संरचना ऊपर है तो नीचे समाधान काम कर रहा है।

   SET SESSION group_concat_max_len = (2056 * 2056);

SET @sql = NULL;

SELECT GROUP_CONCAT(DISTINCT
             CONCAT(
               'MAX(CASE WHEN school.name ="',m.name,'"'
                                ' THEN school.value END)"',m.name , '"'))
                                INTO @sql  
                                            from school as m;

SET @sql = CONCAT('SELECT value,',@sql,
                  ' FROM school');


PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

अपनी तालिका संरचना के अनुसार परिवर्तन करें।

यह समाधान एकाधिक तालिका के लिए भी सहायक है, मुझे आशा है कि यह आपकी समस्या को हल करने में आपकी सहायता कर सकता है।




  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 का उपयोग करके मूल SQL क्वेरीज़ सीखें

  3. एकाधिक तालिकाओं से विवरण कैसे प्राप्त करें?

  4. लार्वा वाक्पटु में वर्तमान लॉग इन उपयोगकर्ता को छोड़कर सभी उपयोगकर्ताओं को प्राप्त करें

  5. सीमा को अनुक्रमित करें और क्वेरी में गलत प्लेसमेंट को ऑफ़सेट करें