MySQL ilk 10 sonucu atla


102

MySQL'de bir SELECT sorgusundan ilk 10 sonucun atlanmasının bir yolu var mı? LIMIT gibi bir şey çalışmasını istiyorum.


7
buradaki tüm yanıtlarda ORDER BY yan tümcesi eksik. SQL tablolarının varsayılan sıralaması yoktur ve açık bir ORDER BY olmadan atlanacak ilk 10 sonucun
hangileri

Yanıtlar:


126

LIMIT'i iki parametre ile kullanın. Örneğin, 11-60 arası sonuçları döndürmek için (burada sonuç 1 ilk satırdır), şunu kullanın:

SELECT * FROM foo LIMIT 10, 50

Tüm sonuçları döndürecek bir çözüm için Thomas'ın cevabına bakın .


Ya bahsettiğiniz numara arasındaki bazı satırlar silinirse?
Alex

93

Hile yapması gereken bir OFSET de var:

SELECT column FROM table
LIMIT 10 OFFSET 10

7
anlaşılması daha kolaylimit 10,10
shellbye

41

OFSET , aradığınız şeydir.

SELECT * FROM table LIMIT 10 OFFSET 10

33

Gönderen manuel :

Sonuç kümesinin sonuna kadar belirli bir uzaklıktan tüm satırları almak için, ikinci parametre için biraz büyük sayı kullanabilirsiniz. Bu ifade, 96. satırdan son satıra kadar tüm satırları alır:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

Açıkçası, değiştirmelisiniz 95tarafından 10. Bu arada kullandıkları büyük sayı 2 ^ 64 - 1.


6

LIMIT, istediğiniz sayıda satırı atlamanıza izin verir. İki parametresi vardır ve bunlardan ilki - kaç satırın atlanacağı


Bu beni netleştirdi "Offset Nedir" Teşekkürler @Col. Şarapnel
OM The Eternity

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

idTablonuzun anahtarı nerede ?


Bu, impala ve ofset ile sınırın her zaman arzu edilmeyen bir sıra argümanı gerektirdiği diğer veritabanları için kullanışlı ve hızlıdır.
KarthikS

-5

Tablonuzun kimliğe göre sıralaması varsa, bunu kolayca yapabilirsiniz:

select * from table where id > 10
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.