MySQL में UNION ALL का उपयोग करके कॉलम्स को पंक्तियों में बदलना
जब आपको एक ही टेबल के कई कॉलम्स के मानों को एक ही कॉलम में कई पंक्तियों के रूप में संयोजित करने की आवश्यकता होती है, तो UNION ALL सबसे सरल और कुशल तरीका है।
सिंटैक्स
SELECT yourColumnName1 FROM yourTableName
UNION ALL
SELECT yourColumnName2 FROM yourTableName;
टेबल बनाना
mysql> CREATE TABLE DemoTable (
-> Value1 INT,
-> Value2 INT
-> );
Query OK, 0 rows affected (0.88 sec)
डेटा डालना
mysql> INSERT INTO DemoTable VALUES (100,200);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES (500,600);
Query OK, 1 row affected (0.18 sec)
मूल डेटा देखना
mysql> SELECT * FROM DemoTable;
+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 100 | 200 |
| 500 | 600 |
+--------+--------+
2 rows in set (0.00 sec)
कॉलम्स को पंक्तियों में संयोजित करने का क्वेरी
mysql> SELECT Value1 FROM DemoTable
-> UNION ALL
-> SELECT Value2 FROM DemoTable;
परिणाम
+--------+
| Value1 |
+--------+
| 100 |
| 500 |
| 200 |
| 600 |
+--------+
4 rows in set (0.00 sec)
UNION vs UNION ALL
| विशेषता | UNION | UNION ALL |
|---|---|---|
| डुप्लिकेट हटाता है | हाँ | नहीं |
| प्रदर्शन | धीमा (सॉर्टिंग आवश्यक) | तेज़ |
| उपयोग करें जब | अद्वितीय मान चाहिए | सभी मान चाहिए (प्रदर्शन के लिए बेहतर) |
अधिक कॉलम्स के लिए विस्तारित
SELECT Col1 AS Combined FROM TableName
UNION ALL SELECT Col2 FROM TableName
UNION ALL SELECT Col3 FROM TableName
UNION ALL SELECT Col4 FROM TableName;
परिणाम में स्रोत कॉलम पहचान जोड़ना
SELECT 'Value1' AS SourceColumn, Value1 AS Value FROM DemoTable
UNION ALL
SELECT 'Value2' AS SourceColumn, Value2 AS Value FROM DemoTable;
परिणाम
+--------------+-------+
| SourceColumn | Value |
+--------------+-------+
| Value1 | 100 |
| Value1 | 500 |
| Value2 | 200 |
| Value2 | 600 |
+--------------+-------+
आधुनिक विकल्प (MySQL 8.0+)
MySQL 8.0+ में, आप JSON_TABLE या LATERAL JOIN का भी उपयोग कर सकते हैं, लेकिन UNION ALL सरल मामलों के लिए सबसे पोर्टेबल और समझने में आसान रहता है।