Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

LIMIT กับ OFFSET ใน MySQL คืนแถวไหนบ้าง?

กฎทั่วไป

LIMIT n OFFSET m → คืน n แถว เริ่มจากแถวที่ m+1

  • OFFSET 0 = เริ่มแถวแรก
  • OFFSET 6 = ข้าม 6 แถวแรก เริ่มแถวที่ 7

ตัวอย่าง

สร้างตาราง 13 แถว (Id 1-13)

mysql> create table LimitOffsettable (Id int);
mysql> insert into LimitOffsettable values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13);

LIMIT 4 OFFSET 6

mysql> select * from LimitOffsettable LIMIT 4 OFFSET 6;
+------+
| Id   |
+------+
| 7    |
| 8    |
| 9    |
| 10   |
+------+
4 rows in set (0.00 sec)

สรุป

LIMITOFFSETแถวที่ได้
401,2,3,4
467,8,9,10
41011,12,13 (เหลือ 3 แถว)

ใช้สำหรับ Pagination: หน้าที่ k (เริ่ม 1) = LIMIT pageSize OFFSET (k-1)*pageSize