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

MySQL Query จำกัดจำนวนแถวด้วย LIMIT

การจำกัดจำนวนแถวผลลัพธ์ใน 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