ในการดึงข้อมูลการเลือกขนาดใหญ่ทีละชิ้น คุณต้องใช้ ORDER BY LIMIT ไวยากรณ์มีดังนี้:
เลือก *จากชื่อตารางของคุณ เรียงตามคอลัมน์ของคุณ LIMIT 0,10;
จากไวยากรณ์ข้างต้น คุณจะได้ 10 แถวจากตาราง ในไวยากรณ์ข้างต้น 0 หมายถึงแถวแรกจากชุดผลลัพธ์ของตารางซึ่งหมายความว่าไม่มีดัชนีอ้างอิง ค่าที่สองของ LIMIT คือจำนวนแถวสูงสุดที่สามารถดึงข้อมูลจากตารางได้
หากคุณต้องการแถวถัดไปหลังจาก 10 ถึง 30 ให้ใช้ใน LIMIT แบบนี้ ไวยากรณ์มีดังนี้:
เลือก *จากชื่อตารางของคุณ เรียงตามคอลัมน์ของคุณ LIMIT 10,20; //11 ถึง 30
หากคุณต้องการชุดแถวอื่นตั้งแต่ 30 ถึง 50 ให้ใช้ LIMIT อีกครั้ง:
เลือก *FROM yourTableName ORDER BY yourColumnName LIMIT 30 ,20; 31 ถึง 50
คุณต้องใช้ตารางชั่วคราวสำหรับสิ่งนี้ ไวยากรณ์มีดังนี้:
วางตารางชั่วคราวหากมีอยู่ yourTemporaryTableName;CREATE TEMPORARY TABLE yourTempTableNameAS( SELECT *FROM yourOriginalTableName ORDER BY LIMIT 0,100);
หากระเบียนทั้งหมดอยู่ในตารางชั่วคราว ให้กู้คืนระเบียนทั้งหมดจากตารางชั่วคราวโดยใช้ LIMIT ตามที่กล่าวข้างต้น
SELECT *FROM yourTemporaryTableName LIMIT 0,100;SELECT *FROM yourTemporaryTableName LIMIT 100,1000;
ตอนนี้ มันขึ้นอยู่กับคุณแล้วที่จะตั้งค่าขีดจำกัด แนวทางปฏิบัติที่ดีในตอนนี้คือ DROP ตารางชั่วคราว แบบสอบถามมีดังนี้:
DROP TEMPORARY TABLE yourTemporaryTableName;
ให้เราใช้การสาธิตของการสนทนาข้างต้น ขั้นแรกสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:
mysql> สร้างตาราง getRecordsDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> คีย์หลัก (Id) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.68 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:
mysql> แทรกลงในค่า getRecordsDemo (),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() ,(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),( ),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(), (),(),();แบบสอบถามตกลง ได้รับผลกระทบ 738 แถว (0.34 วินาที) บันทึก:738 รายการซ้ำ:0 คำเตือน:0
ตอนนี้สร้างตารางชั่วคราวเหมือนตารางด้านบน แบบสอบถามเพื่อสร้างตารางชั่วคราวมีดังนี้:
mysql> วางตารางชั่วคราวหากมี TempRecord; Query OK, 0 แถวได้รับผลกระทบ, 1 คำเตือน (0.00 วินาที) mysql> สร้างตารางชั่วคราว TempRecord -> เป็น -> ( -> เลือก * จากคำสั่ง getRecordsDemo ตามขีด จำกัด Id 0,738 -> );แบบสอบถามตกลง ได้รับผลกระทบ 738 แถว (0.03 วินาที) บันทึก:738 รายการซ้ำ:0 คำเตือน:0
ตอนนี้คุณสามารถรับผลลัพธ์เป็นชิ้น ๆ ด้วยคำสั่ง LIMIT ได้
กรณีที่ 1 :แบบสอบถามมีดังต่อไปนี้เพื่อรับบันทึกบางส่วนจากตารางชั่วคราว 'TempRecord':
mysql> เลือก *จากขีดจำกัด TempRecord 0,10;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+| รหัส |+---+| 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 |+----+10 แถวในชุด (0.00 วินาที)กรณีที่ 2 :แบบสอบถามมีดังต่อไปนี้เพื่อรับชุดระเบียนถัดไป:
mysql> เลือก *จากขีดจำกัด TempRecord 10,20;+---+| รหัส |+---+| 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21 || 22 || 23 || 24 || 25 || 26 || 27 || 28 || 29 || 30 |+----+20 แถวในชุด (0.00 วินาที)
กรณีที่ 3 :แบบสอบถามมีดังต่อไปนี้เพื่อรับชุดระเบียนอื่น:
mysql> เลือก *จากขีดจำกัด TempRecord 30,20;+---+| รหัส |+---+| 31 || 32 || 33 || 34 || 35 || 36 || 37 || 38 || 39 || 40 || 41 || 42 || 43 || 44 || 45 || 46 || 47 || 48 || 49 || 50 |+----+20 แถวในชุด (0.00 วินาที)