कभी-कभी क्वेरी परिणाम में एक अतिरिक्त मान जोड़ना होता है जो टेबल में नहीं है। UNION ALL का उपयोग करके एक स्थिर मान को परिणाम सेट में जोड़ा जा सकता है।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1847 (
GameStatus ENUM('PENDING','COMPLETED','CANCELLED')
);
डेटा डालें
mysql> INSERT INTO DemoTable1847 VALUES('PENDING');
mysql> INSERT INTO DemoTable1847 VALUES('COMPLETED');
mysql> INSERT INTO DemoTable1847 VALUES('CANCELLED');
मौजूदा डेटा
+------------+ | GameStatus | +------------+ | PENDING | | COMPLETED | | CANCELLED | +------------+
कस्टम मान 'REFUND' जोड़ें
mysql> SELECT * FROM DemoTable1847
UNION ALL
SELECT 'REFUND';
आउटपुट:
+------------+ | GameStatus | +------------+ | PENDING | | COMPLETED | | CANCELLED | | REFUND | +------------+
मुख्य अंतर
| ऑपरेटर | व्यवहार |
|---|---|
UNION | डुप्लिकेट हटाता है, सॉर्ट करता है (धीमा) |
UNION ALL | सभी पंक्तियाँ रखता है, तेज़ |
उपयोग के मामले
- ड्रॉपडाउन/सेलेक्ट विकल्पों के लिए डिफ़ॉल्ट/अतिरिक्त मान जोड़ना।
- रिपोर्ट में "सभी", "अन्य", "कुल" जैसी पंक्तियाँ जोड़ना।
- टेबल बदले बिना अस्थायी मान शामिल करना।
नोट
- दोनों
SELECTमें कॉलम संख्या और क्रम समान होना चाहिए। - डेटा प्रकार संगत होने चाहिए (स्ट्रिंग के साथ स्ट्रिंग)।