MySQL ข้าม 10 ผลลัพธ์แรก


102

มีวิธีใดใน MySQL ที่จะมีผลลัพธ์ 10 รายการแรกจากการสอบถาม SELECT ที่ข้ามไป ฉันต้องการให้มันทำงานได้อย่าง LIMIT


7
คำตอบทั้งหมดที่นี่ไม่มีคำสั่ง ORDER BY ตาราง SQL ไม่มีลำดับเริ่มต้นและไม่มี ORDER BY อย่างชัดเจนไม่มีทางที่จะบอกได้ว่าผลลัพธ์ 10 รายการแรกจะข้ามไป
fthiella

คำตอบ:


125

ใช้ LIMIT กับสองพารามิเตอร์ ตัวอย่างเช่นหากต้องการแสดงผลลัพธ์ 11-60 (โดยที่ผลลัพธ์ 1 คือแถวแรก) ให้ใช้:

SELECT * FROM foo LIMIT 10, 50

สำหรับการแก้ปัญหาเพื่อให้ได้ผลลัพธ์ทั้งหมดให้ดูคำตอบของโทมัส


จะเกิดอะไรขึ้นถ้าบางแถวถูกลบระหว่างหมายเลขที่คุณกล่าวถึง
Alex



33

จากคู่มือ :

ในการดึงข้อมูลแถวทั้งหมดจากออฟเซ็ตหนึ่งไปจนถึงจุดสิ้นสุดของชุดผลลัพธ์คุณสามารถใช้จำนวนมากสำหรับพารามิเตอร์ที่สอง คำสั่งนี้ดึงข้อมูลแถวทั้งหมดจากแถวที่ 96 ถึงแถวสุดท้าย:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

เห็นได้ชัดว่าคุณควรเปลี่ยนโดย95 10จำนวนมากที่พวกเขาใช้คือ 2 ^ 64 - 1 อย่างไรก็ตาม



2
select * from table where id not in (select id from table limit 10)

ที่idจะเป็นกุญแจสำคัญในตารางของคุณ


สิ่งนี้มีประโยชน์และทำได้รวดเร็วสำหรับอิมพาลาและฐานข้อมูลอื่น ๆ ที่ขีด จำกัด พร้อมออฟเซ็ตต้องการอาร์กิวเมนต์คำสั่งซึ่งไม่เป็นที่ต้องการเสมอไป
KarthikS

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.