टेबल की अंतिम N पंक्तियों को आरोही क्रम में प्राप्त करने के लिए: पहले अवरोही क्रम में N पंक्तियां लें, फिर बाहरी क्वेरी में आरोही क्रम में सॉर्ट करें।
सिंटैक्स
SELECT * FROM (
SELECT * FROM टेबल_नाम
ORDER BY कॉलम_नाम DESC
LIMIT 3
) AS alias
ORDER BY कॉलम_नाम ASC;
उदाहरण
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable1579 (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(20)
-> );
2. डेटा डालें
mysql> INSERT INTO DemoTable1579(Name) VALUES('Robert'), ('Bob'), ('Chris'), ('Sam'), ('Mike');
3. सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable1579;
+----+--------+ | Id | Name | +----+--------+ | 1 | Robert | | 2 | Bob | | 3 | Chris | | 4 | Sam | | 5 | Mike | +----+--------+
4. अंतिम 3 पंक्तियां आरोही क्रम में
mysql> SELECT * FROM (
-> SELECT * FROM DemoTable1579
-> ORDER BY Id DESC
-> LIMIT 3
-> ) t
-> ORDER BY Id;
5. परिणाम
+----+-------+ | Id | Name | +----+-------+ | 3 | Chris | | 4 | Sam | | 5 | Mike | +----+-------+
चरण-दर-चरण
- आंतरिक क्वेरी:
ORDER BY Id DESC LIMIT 3→ Id 5, 4, 3 (अवरोही) - बाहरी क्वेरी:
ORDER BY Id ASC→ Id 3, 4, 5 (आरोही)
उपयोग के मामले
- नवीनतम 3 ऑर्डर को कालानुक्रमिक क्रम में दिखाना
- हाल के लॉग प्रविष्टियों को समय क्रम में प्रदर्शित करना
- चैट में नवीनतम संदेशों को पुराने से नए क्रम में
MySQL 8.0+ विकल्प: विंडो फ़ंक्शन
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY Id DESC) AS rn
FROM DemoTable1579
) t WHERE rn <= 3
ORDER BY Id ASC;