MySQL-এ টেবিলের দ্বিতীয় শেষ রেকর্ড (Second last record) বের করতে সাবকোয়েরি সহ LIMIT ব্যবহার করুন।
সিনট্যাক্স
SELECT * FROM (
SELECT * FROM yourTableName
ORDER BY idCol DESC
LIMIT 2
) AS sub
ORDER BY idCol ASC
LIMIT 1;
উদাহরণ
CREATE TABLE lastRecordBeforeLastOne (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20) DEFAULT 'John',
Age INT DEFAULT 18
);
INSERT INTO lastRecordBeforeLastOne (Name, Age) VALUES
('Larry',23),('Mike',19),('Sam',24),('Bob',26),
('David',22),('James',29),('Carol',21),('Maxwell',29),('Chris',25);
কোয়েরি
SELECT * FROM (
SELECT * FROM lastRecordBeforeLastOne
ORDER BY Id DESC
LIMIT 2
) AS tbl1
ORDER BY Id ASC
LIMIT 1;
ফলাফল
+----+---------+------+ | Id | Name | Age | +----+---------+------+ | 9 | Maxwell | 29 | +----+---------+------+
ব্যাখ্যা
- ইনার কোয়েরি: DESC সর্ট করে শেষ ২ রো নেয় (Id 10, 9)
- আউটার কোয়েরি: ASC সর্ট করে 그중 প্রথমটি নেয় (Id 9)
MySQL 8.0+ উইন্ডো ফাংশন
WITH Ranked AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY Id DESC) AS rn
FROM lastRecordBeforeLastOne
)
SELECT * FROM Ranked WHERE rn = 2;