MySQL में एक ही क्वेरी में अलग-अलग शर्तों के साथ LIMIT लागू करने के लिए UNION ALL ऑपरेटर का उपयोग किया जाता है। यह तरीका तब उपयोगी होता है जब आपको अलग-अलग श्रेणियों के लिए अलग-अलग सीमाएँ (limits) सेट करनी हों।
उदाहरण के लिए टेबल बनाना
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Subject VARCHAR(100)
);
डेटा डालना
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('Java');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+----+---------+ | Id | Subject | +----+---------+ | 1 | MySQL | | 2 | MySQL | | 3 | MongoDB | | 4 | MongoDB | | 5 | MySQL | | 6 | Java | | 7 | MySQL | | 8 | MongoDB | +----+---------+
LIMIT के साथ एकाधिक WHERE क्वेरी
यहाँ हम MySQL के लिए 3 रिकॉर्ड और MongoDB के लिए 5 रिकॉर्ड ले रहे हैं:
mysql> (SELECT * FROM DemoTable WHERE Subject='MySQL' LIMIT 3)
-> UNION ALL
-> (SELECT * FROM DemoTable WHERE Subject='MongoDB' LIMIT 5);
आउटपुट
+----+---------+ | Id | Subject | +----+---------+ | 1 | MySQL | | 2 | MySQL | | 5 | MySQL | | 3 | MongoDB | | 4 | MongoDB | | 8 | MongoDB | +----+---------+
नोट: UNION ALL डुप्लिकेट पंक्तियों को नहीं हटाता, इसलिए प्रदर्शन बेहतर रहता है। यदि आपको डुप्लिकेट हटाने हैं तो केवल UNION उपयोग करें।