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

डायनेमिक कॉलम के साथ MySQL पिवट टेबल क्वेरी

MySQL में गतिशील रूप से ऐसा करने का एकमात्र तरीका तैयार बयानों के साथ है। यहां उनके बारे में एक अच्छा लेख दिया गया है:

डायनामिक पिवट टेबल (पंक्तियों को कॉलम में बदलना)

आपका कोड इस तरह दिखेगा:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(IF(pa.fieldname = ''',
      fieldname,
      ''', pa.fieldvalue, NULL)) AS ',
      fieldname
    )
  ) INTO @sql
FROM product_additional;

SET @sql = CONCAT('SELECT p.id
                    , p.name
                    , p.description, ', @sql, ' 
                   FROM product p
                   LEFT JOIN product_additional AS pa 
                    ON p.id = pa.id
                   GROUP BY p.id, p.name, p.description');

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

देखें डेमो

नोट:GROUP_CONCAT फ़ंक्शन में 1024 वर्णों की सीमा है। पैरामीटर देखें group_concat_max_len



  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 डेटाबेस के साथ एंड्रॉइड फोन पर SQLite डेटाबेस को कैसे सिंक करें?

  2. MySQL डेटाबेस की प्रत्येक तालिका में फ़ील्ड में टेक्स्ट खोजें

  3. उपयोगकर्ता के लिए MySQL सर्वर को रिमोट एक्सेस अनुमतियां कैसे दें?

  4. ETL प्रक्रिया में Python और MySQL का उपयोग करना:SQLAlchemy

  5. समय बीतने के बाद mysql पंक्ति को कैसे हटाएं?