MySQL-এ একাধিক WHERE শর্তের সাথে LIMIT ব্যবহার করার জন্য UNION ALL অপারেটর ব্যবহার করা যেতে পারে। নিচে ধাপে ধাপে উদাহরণ দেওয়া হলো:
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Subject VARCHAR(100)
-> );
Query OK, 0 rows affected (0.64 sec)
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 | +----+---------+ 8 rows in set (0.00 sec)
UNION ALL সহ LIMIT ব্যবহার
নিচের কোয়েরি ব্যবহার করে 'MySQL' সাবজেক্টের ৩টি এবং 'MongoDB' সাবজেক্টের ৫টি রেকর্ড বের করা যায়:
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 | +----+---------+ 6 rows in set (0.00 sec)
ব্যাখ্যা: প্রথম সাব-কোয়েরি 'MySQL' বিষয়ে ৩টি রো বের করে, দ্বিতীয়টি 'MongoDB' বিষয়ে ৫টি রো বের করে। UNION ALL ব্যবহার করলে ডুপ্লিকেট রো সরানো হয় না, যা পারফরম্যান্সের জন্য ভালো।