MySQL-এ ORDER BY ... DESC এবং LIMIT ব্যবহার করে টেবিলের শেষ Nটি রেকর্ড বের করা যায়।
সিনট্যাক্স
select * from yourTableName order by yourColumnName DESC LIMIT 5;
উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> create table DemoTable820(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
CustomerName varchar(100)
);
Query OK, 0 rows affected (0.53 sec)
mysql> insert into DemoTable820(CustomerName) values('Chris');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable820(CustomerName) values('Robert');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable820(CustomerName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable820(CustomerName) values('Bob');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable820(CustomerName) values('Carol');
Query OK, 1 row affected (0.06 sec)
mysql> insert into DemoTable820(CustomerName) values('Adam');
Query OK, 1 row affected (0.08 sec)
সকল রেকর্ড দেখানো
mysql> select * from DemoTable820;
+----+--------------+ | Id | CustomerName | +----+--------------+ | 1 | Chris | | 2 | Robert | | 3 | David | | 4 | Bob | | 5 | Carol | | 6 | Adam | +----+--------------+ 6 rows in set (0.00 sec)
শেষ ৫টি রেকর্ড (Id ডেসেন্ডিং অর্ডারে)
mysql> select * from DemoTable820 order by Id DESC LIMIT 5;
+----+--------------+ | Id | CustomerName | +----+--------------+ | 6 | Adam | | 5 | Carol | | 4 | Bob | | 3 | David | | 2 | Robert | +----+--------------+ 5 rows in set (0.00 sec)
ব্যাখ্যা
ORDER BY Id DESC- সর্বোচ্চ Id (সর্বশেষ ইনসার্ট করা) প্রথমেLIMIT 5- শুধু প্রথম ৫টি (যা হলো শেষ ৫টি ইনসার্ট)
অন্যান্য вариয়েশন
- শেষ ১০টি:
LIMIT 10 - ৫টি বাদ দিয়ে পরের ৫টি:
LIMIT 5 OFFSET 5বাLIMIT 5, 5 - তاریখ অনুযায়ী:
ORDER BY CreatedAt DESC LIMIT 5
দ্রষ্টব্য: অটো-ইনক্রিমেন্ট Id ব্যবহার করলে এটি ইনসার্ট অর্ডার নির্দেশ করে। যদি Id রি-অর্ডার হয়ে থাকে, তবে CreatedAt টাইমস্ট্যাম্প কলাম ব্যবহার করুন।