MySQL-এ একটি কোয়েরির ফলাফল থেকে নির্দিষ্ট সংখ্যক রো (N রো) ফেচ করতে LIMIT ক্লজ ব্যবহার করা হয়। এটি পেজিনেশন (pagination) এর জন্য অত্যন্ত গুরুত্বপূর্ণ।
সিনট্যাক্স
SELECT * FROM yourTableName LIMIT offset, count;
offset- কতটি রো বাদ দিয়ে শুরু করবে (০-ভিত্তিক)count- কতটি রো ফেরত দেবে
টেবিল তৈরি এবং ১৩টি রেকর্ড ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable(Name) VALUES('John'),('Larry'),('Bob'),('Sam'),('Mike'),
-> ('David'),('Carol'),('Ramit'),('Adam'),('Chris'),('Robert'),('James'),('Jace');
সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Name |
+----+--------+
| 1 | John |
| 2 | Larry |
| 3 | Bob |
| 4 | Sam |
| 5 | Mike |
| 6 | David |
| 7 | Carol |
| 8 | Ramit |
| 9 | Adam |
| 10 | Chris |
| 11 | Robert |
| 12 | James |
| 13 | Jace |
+----+--------+
প্রথম ১০টি রো ফেচ করা (LIMIT 0, 10)
mysql> SELECT * FROM DemoTable LIMIT 0, 10;
+----+-------+
| Id | Name |
+----+-------+
| 1 | John |
| 2 | Larry |
| 3 | Bob |
| 4 | Sam |
| 5 | Mike |
| 6 | David |
| 7 | Carol |
| 8 | Ramit |
| 9 | Adam |
| 10 | Chris |
+----+-------+
পেজিনেশন উদাহরণ
- পেজ ১ (রো ১-১০):
LIMIT 0, 10বাLIMIT 10 - পেজ ২ (রো ১১-২০):
LIMIT 10, 10 - পেজ ৩ (রো ২১-৩০):
LIMIT 20, 10
সিনট্যাক্স ভেরিয়েশন:
LIMIT 10- প্রথম ১০টি (offset=0 ইম্প্লিসিট)LIMIT 10 OFFSET 5- ৬ম থেকে ১৫ম রো (MySQL 8.0+)
পারফরম্যান্স টিপস: বড় অফসেটে (যেমন LIMIT 100000, 10) কোয়েরি ধীর হয়। সেক্ষেত্রে WHERE id > last_seen_id LIMIT 10 পদ্ধতি দ্রুত।