MySQL में सबक्वेरी से अंतिम 3 पंक्तियाँ ID ASC क्रम में प्राप्त करें
आप सबक्वेरी का उपयोग कर सकते हैं। सिंटैक्स:
SELECT * FROM (
SELECT * FROM yourTableName ORDER BY yourIdColumnName DESC LIMIT 3
) anyAliasName ORDER BY yourIdColumnName;
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable (
ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName varchar(100)
); Query OK, 0 rows affected (0.60 sec)
इन्सर्ट कमांड से टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable(ClientName) values('Larry'); Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(ClientName) values('Chris'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(ClientName) values('Bob'); Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(ClientName) values('David'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(ClientName) values('Carol'); Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(ClientName) values('Robert'); Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(ClientName) values('Sam'); Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(ClientName) values('Mike'); Query OK, 1 row affected (0.12 sec)
सेलेक्ट स्टेटमेंट से टेबल के सभी रिकॉर्ड प्रदर्शित करें:
mysql> select *from DemoTable;
आउटपुट:
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 1 | Larry | | 2 | Chris | | 3 | Bob | | 4 | David | | 5 | Carol | | 6 | Robert | | 7 | Sam | | 8 | Mike | +----------+------------+ 8 rows in set (0.00 sec)
डेटाबेस से अंतिम 3 पंक्तियाँ ID ASC द्वारा क्रमबद्ध चुनने का क्वेरी:
mysql> SELECT * FROM ( SELECT * FROM DemoTable ORDER BY ClientId DESC LIMIT 3 ) tbl ORDER BY ClientId ASC;
आउटपुट:
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 6 | Robert | | 7 | Sam | | 8 | Mike | +----------+------------+ 3 rows in set (0.00 sec)
व्याख्या: आंतरिक क्वेरी ORDER BY ClientId DESC LIMIT 3 अंतिम 3 पंक्तियाँ (उच्चतम ID) लेती है। बाहरी क्वेरी उन्हें ORDER BY ClientId ASC से आरोही क्रम में पुनः क्रमबद्ध करती है। MySQL 8.0+ में WITH (CTE) का उपयोग अधिक पठनीय है।