MySQL überspringt die ersten 10 Ergebnisse

102

Gibt es in MySQL eine Möglichkeit, die ersten 10 Ergebnisse einer SELECT-Abfrage zu überspringen? Ich möchte, dass es so etwas wie LIMIT funktioniert.

Brian
quelle
7
Allen Antworten hier fehlt eine ORDER BY-Klausel. SQL-Tabellen haben keine Standardreihenfolge, und ohne eine explizite ORDER BY-Funktion kann nicht festgestellt werden, welche der ersten 10 Ergebnisse
übersprungen werden sollen

Antworten:

125

Verwenden Sie LIMIT mit zwei Parametern. Verwenden Sie beispielsweise Folgendes, um die Ergebnisse 11-60 zurückzugeben (wobei Ergebnis 1 die erste Zeile ist):

SELECT * FROM foo LIMIT 10, 50

Eine Lösung zur Rückgabe aller Ergebnisse finden Sie in der Antwort von Thomas .

Dominic Rodger
quelle
Was ist, wenn einige Zeilen zwischen der von Ihnen angegebenen Nummer gelöscht werden?
Alex
90

Es gibt auch einen OFFSET, der den Trick machen sollte:

SELECT column FROM table
LIMIT 10 OFFSET 10
Jamesaharvey
quelle
7
leichter zu verstehen alslimit 10,10
Shellbye
39

OFFSET ist das, wonach Sie suchen.

SELECT * FROM table LIMIT 10 OFFSET 10
TRiG
quelle
33

Aus dem Handbuch :

Um alle Zeilen von einem bestimmten Versatz bis zum Ende der Ergebnismenge abzurufen, können Sie für den zweiten Parameter eine große Zahl verwenden. Diese Anweisung ruft alle Zeilen von der 96. bis zur letzten Zeile ab:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

Natürlich sollten Sie 95durch ersetzen 10. Die große Zahl, die sie verwenden, ist übrigens 2 ^ 64 - 1.

Thomas
quelle
5

Mit LIMIT können Sie eine beliebige Anzahl von Zeilen überspringen. Es hat zwei Parameter und erstens - wie viele Zeilen übersprungen werden sollen

Ihr gesunder Menschenverstand
quelle
Dies machte mir klar, dass "What is Offset" Danke @Col. Schrapnell
OM Die Ewigkeit
2
select * from table where id not in (select id from table limit 10)

Wo idist der Schlüssel in Ihrer Tabelle?

Mickeymoon
quelle
Dies ist nützlich und schnell für Impala- und andere Datenbanken, bei denen das Limit mit Offset ein Ordnungsargument erfordert, das nicht immer wünschenswert ist.
KarthikS
-5

Wenn Ihr Tisch nach ID bestellt ist, können Sie dies leicht tun durch:

select * from table where id > 10
Biswajit Paul
quelle