MySQL में अंतिम N रिकॉर्ड प्राप्त करके उन्हें आरोही क्रम में क्रमबद्ध करने के लिए सबक्वेरी का उपयोग करें। यह तकनीक हाल के रिकॉर्ड को कालानुक्रमिक क्रम में प्रदर्शित करने के लिए उपयोगी है।
उदाहरण तालिका बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (Id INT); mysql> INSERT INTO DemoTable VALUES (100), (115), (200), (140), (124), (198), (156), (178), (156);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+------+ | Id | +------+ | 100 | | 115 | | 200 | | 140 | | 124 | | 198 | | 156 | | 178 | | 156 | +------+
अंतिम 5 रिकॉर्ड ID द्वारा आरोही क्रम में प्राप्त करना
mysql> SELECT * FROM (
-> SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 5
-> ) AS tbl ORDER BY Id;
आउटपुट:
+------+ | Id | +------+ | 156 | | 156 | | 178 | | 198 | | 200 | +------+
व्याख्या: आंतरिक क्वेरी ORDER BY Id DESC LIMIT 5 सबसे बड़े 5 ID मान प्राप्त करती है (अंतिम 5 डाले गए रिकॉर्ड यदि ID ऑटो-इन्क्रीमेंट है)। बाहरी क्वेरी इन 5 रिकॉर्ड को ORDER BY Id (आरोही) द्वारा पुनः क्रमबद्ध करती है। परिणाम अंतिम 5 रिकॉर्ड होते हैं जो छोटे से बड़े ID क्रम में होते हैं।
वैकल्पिक: MySQL 8.0+ में आप CTE (Common Table Expressions) का भी उपयोग कर सकते हैं:
WITH Last5 AS (
SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 5
)
SELECT * FROM Last5 ORDER BY Id;