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