सबक्वेरी के साथ LIMIT 2 और बाहरी ORDER BY ... LIMIT 1 का उपयोग करके अंतिम से दूसरी पंक्ति प्राप्त करें।
सिंटैक्स:
SELECT * FROM (
SELECT * FROM yourTable ORDER BY idCol DESC LIMIT 2
) t ORDER BY idCol LIMIT 1;
एक टेबल बनाते हैं:
CREATE TABLE lastRecordBeforeLastOne (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20) DEFAULT 'John',
Age INT DEFAULT 18
);
10 रिकॉर्ड डालें।
दूसरी-अंतिम रिकॉर्ड प्राप्त करें:
SELECT * FROM (
SELECT * FROM lastRecordBeforeLastOne ORDER BY Id DESC LIMIT 2
) t1 ORDER BY Id LIMIT 1;
आउटपुट
+----+---------+------+ | Id | Name | Age | +----+---------+------+ | 9 | Maxwell | 29 | +----+---------+------+
व्याख्या:
- आंतरिक क्वेरी:
ORDER BY Id DESC LIMIT 2- अंतिम 2 पंक्तियाँ (Id 10, 9) लाती है - बाहरी क्वेरी:
ORDER BY Id LIMIT 1- उनमें से पहली (कम Id = 9) लौटाती है
MySQL 8.0+ में: ROW_NUMBER() या LAG() विंडो फंक्शन का उपयोग करें।