MySQL melewatkan 10 hasil pertama


102

Apakah ada cara di MySQL agar 10 hasil pertama dari kueri SELECT dilewati? Saya ingin bekerja seperti LIMIT.


7
semua jawaban di sini tidak memiliki klausa ORDER BY. Tabel SQL tidak memiliki urutan default, dan tanpa ORDER BY eksplisit, tidak ada cara untuk mengetahui mana 10 hasil pertama yang dilewati
fthiella

Jawaban:


125

Gunakan LIMIT dengan dua parameter. Misalnya, untuk mengembalikan hasil 11-60 (di mana hasil 1 adalah baris pertama), gunakan:

SELECT * FROM foo LIMIT 10, 50

Untuk solusi mengembalikan semua hasil, lihat jawaban Thomas .


Bagaimana jika beberapa baris dihapus di antara nomor yang Anda sebutkan.
Alex

91

Ada OFFSET juga yang harus melakukan trik:

SELECT column FROM table
LIMIT 10 OFFSET 10

7
lebih mudah untuk dimengerti daripadalimit 10,10
shellbye


33

Dari manual :

Untuk mengambil semua baris dari offset tertentu hingga akhir set hasil, Anda dapat menggunakan sejumlah besar untuk parameter kedua. Pernyataan ini mengambil semua baris dari baris ke-96 hingga yang terakhir:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

Jelas, Anda harus mengganti 95dengan 10. Angka besar yang mereka gunakan adalah 2 ^ 64 - 1.


5

LIMIT memungkinkan Anda melewati sejumlah baris. Ini memiliki dua parameter, dan yang pertama - berapa banyak baris yang harus dilewati


Ini membuat saya jelas bahwa "Apa itu Offset" Terima kasih @Col. Pecahan peluru
OM The Eternity

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

di mana idmenjadi kunci di meja Anda.


Ini berguna dan cepat dilakukan, untuk impala dan database lain di mana batas dengan offset memerlukan argumen urutan yang tidak selalu diinginkan.
KarthikS

-5

Jika tabel Anda telah diurutkan berdasarkan id, Anda dapat dengan mudah melakukannya dengan:

select * from table where id > 10
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.