we wszystkich odpowiedziach brakuje klauzuli ORDER BY. Tabele SQL nie mają domyślnej kolejności, a bez wyraźnego ORDER BY nie ma sposobu, aby powiedzieć, które 10 wyników należy pominąć
fthiella
Odpowiedzi:
126
Użyj LIMIT z dwoma parametrami. Na przykład, aby zwrócić wyniki 11-60 (gdzie wynik 1 to pierwszy wiersz), użyj:
SELECT*FROM foo LIMIT 10,50
Rozwiązanie umożliwiające zwrócenie wszystkich wyników można znaleźć w odpowiedzi Thomasa .
Aby pobrać wszystkie wiersze od określonego przesunięcia do końca zestawu wyników, możesz użyć dużej liczby dla drugiego parametru. Ta instrukcja pobiera wszystkie wiersze od 96. do ostatniego wiersza:
SELECT*FROM tbl LIMIT 95,18446744073709551615;
Oczywiście należy zamienić 95na 10. Nawiasem mówiąc, duża liczba, której używają, to 2 ^ 64 - 1.
Jest to przydatne i szybkie w przypadku impali i innych baz danych, w których limit z przesunięciem wymaga argumentu kolejności, który nie zawsze jest pożądany.
KarthikS
-5
Jeśli Twój stół ma zamawianie według identyfikatora, możesz to łatwo zrobić przez:
Odpowiedzi:
Użyj LIMIT z dwoma parametrami. Na przykład, aby zwrócić wyniki 11-60 (gdzie wynik 1 to pierwszy wiersz), użyj:
Rozwiązanie umożliwiające zwrócenie wszystkich wyników można znaleźć w odpowiedzi Thomasa .
źródło
Jest też OFFSET, który powinien załatwić sprawę:
źródło
limit 10,10
OFFSET jest tym, czego szukasz.
źródło
Z instrukcji :
Oczywiście należy zamienić
95
na10
. Nawiasem mówiąc, duża liczba, której używają, to 2 ^ 64 - 1.źródło
LIMIT pozwala na pominięcie dowolnej liczby wierszy. Ma dwa parametry, a pierwszy z nich - ile wierszy ma zostać pominiętych
źródło
gdzie
id
jest klucz w twoim stole.źródło
Jeśli Twój stół ma zamawianie według identyfikatora, możesz to łatwo zrobić przez:
źródło