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

MySQL क्वेरी को स्थानांतरित करें - कॉलम में पंक्तियों की आवश्यकता है

आपको एक PIVOT करने की आवश्यकता है ऑपरेशन, जो मूल रूप से MySQL (कुछ अन्य RDBMS के विपरीत) में समर्थित नहीं है।

आप निम्न पंक्तियों के साथ SQL का निर्माण कर सकते हैं:

SELECT   ProductId,
         GROUP_CONCAT(IF(Name='Brand Name'          ,value,NULL))
           AS `Brand Name`,
         GROUP_CONCAT(IF(Name='Ethernet Technology' ,value,NULL))
           AS `Ethernet Technology`,
         GROUP_CONCAT(IF(Name='Form Factor'         ,value,NULL))
           AS `Form Factor`,
         GROUP_CONCAT(IF(Name='Media Type Supported',value,NULL))
           AS `Media Type Supported`
FROM     search_export
GROUP BY ProductId

यदि संभव हो Name मान गतिशील हैं, आप निम्न के परिणामों से उच्च स्तरीय भाषा में ऐसे SQL उत्पन्न कर सकते हैं:

SELECT DISTINCT Name FROM search_export

वास्तव में, कोई भी स्वयं SQL का उपयोग कर सकता है:

SELECT CONCAT('
         SELECT   ProductId, ',
       GROUP_CONCAT('
                  GROUP_CONCAT(IF(Name=',QUOTE(Name),',value,NULL))
                    AS `',REPLACE(Name,'`','``'),'`'
       ), '
         FROM     search_export
         GROUP BY ProductId
       ')
INTO @sql
FROM (
  SELECT DISTINCT Name FROM search_export
) t;

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

ध्यान दें कि यदि बहुत सारे अलग-अलग Name हैं मान, आपको group_concat_max_len बढ़ाने की आवश्यकता हो सकती है कोड> 1KiB के अपने डिफ़ॉल्ट से।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कोडइग्निटर/PHP/MySQL:जॉइन के साथ डेटा पुनर्प्राप्त करना

  2. कैसे जांचें और max_allowed_packet mysql चर सेट करें

  3. MySQL सेलेक्ट काउंटर, ग्रुप बाय

  4. MySQL त्रुटि 150

  5. पीएचपी:पीडीओ क्वेरी कोई परिणाम नहीं देता है, लेकिन वही क्वेरी phpmyadmin में 4 परिणाम देता है?