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

การแบ่งหน้าโดยใช้ MySQL LIMIT, OFFSET?


ประการแรก เราต้องสร้างตารางที่มีระเบียนบางส่วน จากนั้นเราจะใช้การแบ่งหน้าโดยใช้ลิมิตและออฟเซ็ต

การสร้างตารางด้วยคำสั่ง CREATE แบบสอบถามมีดังต่อไปนี้ −

mysql> สร้างตาราง limitoffsetDemo-> (-> id int,-> FisrtName varchar(200)-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.45 วินาที)

หลังจากสร้างตารางแล้ว เราจะทำการแทรกเรคคอร์ดโดยใช้คำสั่ง INSERT

กำลังแทรกบันทึก

mysql> INSERT เป็นค่า limitoffsetDemo (1,'John'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> INSERT เป็นค่า limitoffsetDemo (2,'Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> INSERT เป็นค่า limitoffsetDemo(3,'David');แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> INSERT เป็นค่า limitoffsetDemo (4,'carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> INSERT เป็นค่า limitoffsetDemo (5,'Taylor'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> INSERT เป็นค่า limitoffsetDemo (1,'John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> INSERT เป็นค่า limitoffsetDemo(7,'Smith');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> INSERT เป็นค่า limitoffsetDemo (8,'John');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> INSERT เป็น limitoffsetDemo ค่า (9, 'Johnson'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> INSERT เป็นค่า limitoffsetDemo (10, 'Jason'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที) mysql> INSERT เป็นค่า limitoffsetDemo ( 11,'Bk');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)

หลังจากแทรกระเบียนแล้ว เราจะตรวจสอบจำนวนระเบียนที่มีอยู่ในตารางของฉันได้โดยใช้คำสั่ง SELECT แบบสอบถามมีดังต่อไปนี้ −

mysql> SELECT * จาก limitoffsetDemo;

หลังจากดำเนินการสืบค้นข้อมูลข้างต้นแล้ว เราจะได้ผลลัพธ์ดังต่อไปนี้

<ก่อนหน้า>+------+-----------+| id | FisrtName |+------+-----------+| 1 | จอห์น || 2 | บ๊อบ || 3 | เดวิด || 4 | แครอล || 5 | เทย์เลอร์ || 1 | จอห์น || 7 | สมิธ || 8 | จอห์น || 9 | จอห์นสัน || 10 | เจสัน || 11 | Bk |+------+-----------+11 แถวในชุด (0.00 วินาที)

ตอนนี้ฉันมี 11 ระเบียน ในการตั้งค่าการแบ่งหน้าด้วยลิมิตและออฟเซ็ต ให้ใช้ไวยากรณ์ต่อไปนี้ -

เลือก * จาก yourTableName จำกัด value1,value2;

ในแบบสอบถามข้างต้น value1 บอกว่าเราต้องการแสดงระเบียนจากที่ใด และค่าที่ 2 นับจำนวนระเบียน

ตอนนี้ ฉันกำลังใช้แบบสอบถามด้านบนเพื่อให้ได้ผลลัพธ์ ซึ่งมีดังนี้ -

mysql> SELECT * จาก limitoffsetDemo จำกัด 7,4;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+------+-----------+| id | ชื่อจริง |+------+-----------+| 8 | จอห์น || 9 | จอห์นสัน || 10 | เจสัน || 11 | Bk |+------+-----------+4 แถวในชุด (0.00 วินาที)