มีวิธีใดใน MySQL ที่จะมีผลลัพธ์ 10 รายการแรกจากการสอบถาม SELECT ที่ข้ามไป ฉันต้องการให้มันทำงานได้อย่าง LIMIT
มีวิธีใดใน MySQL ที่จะมีผลลัพธ์ 10 รายการแรกจากการสอบถาม SELECT ที่ข้ามไป ฉันต้องการให้มันทำงานได้อย่าง LIMIT
คำตอบ:
ใช้ LIMIT กับสองพารามิเตอร์ ตัวอย่างเช่นหากต้องการแสดงผลลัพธ์ 11-60 (โดยที่ผลลัพธ์ 1 คือแถวแรก) ให้ใช้:
SELECT * FROM foo LIMIT 10, 50
สำหรับการแก้ปัญหาเพื่อให้ได้ผลลัพธ์ทั้งหมดให้ดูคำตอบของโทมัส
มี OFFSET เช่นกันที่ควรทำเคล็ดลับ:
SELECT column FROM table
LIMIT 10 OFFSET 10
limit 10,10
OFFSETคือสิ่งที่คุณกำลังมองหา
SELECT * FROM table LIMIT 10 OFFSET 10
จากคู่มือ :
ในการดึงข้อมูลแถวทั้งหมดจากออฟเซ็ตหนึ่งไปจนถึงจุดสิ้นสุดของชุดผลลัพธ์คุณสามารถใช้จำนวนมากสำหรับพารามิเตอร์ที่สอง คำสั่งนี้ดึงข้อมูลแถวทั้งหมดจากแถวที่ 96 ถึงแถวสุดท้าย:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
เห็นได้ชัดว่าคุณควรเปลี่ยนโดย95
10
จำนวนมากที่พวกเขาใช้คือ 2 ^ 64 - 1 อย่างไรก็ตาม
LIMIT ช่วยให้คุณสามารถข้ามแถวใดก็ได้ มันมีสองพารามิเตอร์และตัวแรก - จำนวนแถวที่จะข้าม
select * from table where id not in (select id from table limit 10)
ที่id
จะเป็นกุญแจสำคัญในตารางของคุณ
หากโต๊ะของคุณมีการสั่งซื้อด้วย id คุณสามารถทำได้ง่ายๆโดย:
select * from table where id > 10