MySQL-এ টেবিলের শেষ N টি রেকর্ড আরোহী ক্রমে (ASC) পেতে সাবকোয়েরিতে ORDER BY ... DESC LIMIT N করুন, তারপর বাহ্যিক কোয়েরিতে ORDER BY ... ASC করুন।
সিনট্যাক্স
SELECT * FROM (
SELECT * FROM `table` ORDER BY `id_col` DESC LIMIT 20
) AS `t` ORDER BY `t`.`id_col` ASC;
উদাহরণ (২৩ রোয়ালা টেবিল, শেষ ২০টি ASC)
CREATE TABLE `ProductInformation` (
`ProductId` INT, `ProductName` VARCHAR(100), `ProductPrice` INT
);
-- ২৩টি রো ইনসার্ট (১০১ থেকে ১২৩)
কোয়েরি
SELECT * FROM (
SELECT * FROM `ProductInformation` ORDER BY `ProductId` DESC LIMIT 20
) AS `t1` ORDER BY `t1`.`ProductId` ASC;
ফলাফল: ProductId ১০৪ থেকে ১২৩ পর্যন্ত আরোহী ক्रमে।
ডিসেন্ডিং (DESC) আউটপুট চাইলে
SELECT * FROM (
SELECT * FROM `ProductInformation` ORDER BY `ProductId` DESC LIMIT 20
) AS `t2` ORDER BY `t2`.`ProductId` DESC;
টিপস: বড় টেবিলে LIMIT সাথে WHERE id > last_seen_id (keyset pagination) ব্যবহার করলে পারফরম্যান্স ভালো থাকে।