การจำกัดจำนวนแถวผลลัพธ์ใน MySQL ด้วย LIMIT
ใช้ LIMIT offset, row_count หรือ LIMIT row_count OFFSET offset เพื่อดึงข้อมูลบางส่วน (Pagination)
ตัวอย่างการใช้งาน
สร้างตาราง 7 แถว:
mysql> create table DemoTable (Id int, Name varchar(20)); mysql> insert into DemoTable values(10,'John'); mysql> insert into DemoTable values(11,'Chris'); mysql> insert into DemoTable values(12,'David'); mysql> insert into DemoTable values(13,'Carol'); mysql> insert into DemoTable values(14,'Mike'); mysql> insert into DemoTable values(15,'Sam'); mysql> insert into DemoTable values(16,'Robert');
ข้อมูลทั้งหมด:
+------+--------+ | Id | Name | +------+--------+ | 10 | John | | 11 | Chris | | 12 | David | | 13 | Carol | | 14 | Mike | | 15 | Sam | | 16 | Robert | +------+--------+
คิวรีข้าม 2 แถวแรก แล้วเอา 4 แถว (Offset 2, Limit 4):
mysql> select * from DemoTable limit 2, 4;
+------+-------+ | Id | Name | +------+-------+ | 12 | David | | 13 | Carol | | 14 | Mike | | 15 | Sam | +------+-------+
รูปแบบ LIMIT:
LIMIT n- เอา n แถวแรก (Offset 0)LIMIT offset, count- ข้าม offset แถว แล้วเอา count แถวLIMIT count OFFSET offset- มาตรฐาน SQL (รองรับ MySQL)
ประสิทธิภาพ Pagination ใหญ่: LIMIT 100000, 10 ช้า (ต้อง Scan 100000 แถว) | ใช้ Keyset Pagination แทน: WHERE id > last_seen_id ORDER BY id LIMIT 10