MySQL
Limit und Offset
Suche…
Syntax
- SELECT Spalte_1 [, Spalte_2]
FROM table_1
ORDER BY order_column
LIMIT row_count [OFFSET row_offset] - SELECT Spalte_1 [, Spalte_2]
FROM table_1
ORDER BY order_column
LIMIT [row_offset,] row_count
Bemerkungen
"Limit" kann "Maximale Anzahl von Zeilen in einer Tabelle" bedeuten.
"Offset" bedeutet Auswahl aus row
(nicht durch Primärschlüsselwert oder Felddatenwert zu verwechseln)
Limit- und Offset-Beziehung
Berücksichtigt die folgende users
:
Ich würde | Nutzername |
---|---|
1 | Benutzer1 |
2 | User2 |
3 | Benutzer3 |
4 | User4 |
5 | Benutzer5 |
Um die Anzahl der Zeilen in der Ergebnismenge einer SELECT
Abfrage zu beschränken , kann die LIMIT
Klausel zusammen mit einer oder zwei positiven Ganzzahlen als Argumente verwendet werden (Null eingeschlossen).
LIMIT
Klausel mit einem Argument
Wenn ein Argument verwendet wird, ist die Ergebnismenge nur auf die auf folgende Weise angegebene Anzahl beschränkt:
SELECT * FROM users ORDER BY id ASC LIMIT 2
Ich würde | Nutzername |
---|---|
1 | Benutzer1 |
2 | User2 |
Wenn der Wert des Arguments 0
, ist die Ergebnismenge leer.
ORDER BY
auch, dass die ORDER BY
Klausel wichtig sein kann, um die ersten Zeilen der Ergebnismenge anzugeben, die angezeigt werden sollen (wenn Sie nach einer anderen Spalte sortieren).
LIMIT
Klausel mit zwei Argumenten
Wenn zwei Argumente in einer LIMIT
Klausel verwendet werden:
- Das erste Argument steht für die Zeile, aus der die Zeilen der Ergebnismenge dargestellt werden. Diese Zahl wird häufig als Versatz angegeben , da sie die Zeile darstellt, die vor der ersten Zeile der eingeschränkten Ergebnismenge liegt. Dadurch kann das Argument
0
als Wert erhalten und somit die erste Zeile der uneingeschränkten Ergebnismenge berücksichtigen. - Das zweite Argument gibt die maximale Anzahl von Zeilen an, die in der Ergebnismenge zurückgegeben werden sollen (ähnlich dem Beispiel des einen Arguments).
Daher die Abfrage:
SELECT * FROM users ORDER BY id ASC LIMIT 2, 3
Stellt die folgende Ergebnismenge dar:
Ich würde | Nutzername |
---|---|
3 | Benutzer3 |
4 | User4 |
5 | Benutzer5 |
Beachten Sie, dass wenn das Offset- Argument 0
, die Ergebnismenge einer LIMIT
Klausel mit einem Argument entspricht. Dies bedeutet, dass die folgenden zwei Abfragen:
SELECT * FROM users ORDER BY id ASC LIMIT 0, 2
SELECT * FROM users ORDER BY id ASC LIMIT 2
Produzieren Sie die gleiche Ergebnismenge:
Ich würde | Nutzername |
---|---|
1 | Benutzer1 |
2 | User2 |
Schlüsselwort OFFSET
: alternative Syntax
Eine alternative Syntax für die LIMIT
Klausel mit zwei Argumenten besteht in der Verwendung des Schlüsselworts OFFSET
nach dem ersten Argument auf folgende Weise:
SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3
Diese Abfrage würde die folgende Ergebnismenge zurückgeben:
Ich würde | Nutzername |
---|---|
3 | Benutzer3 |
4 | User4 |
Beachten Sie, dass in dieser alternativen Syntax die Positionen der Argumente ausgetauscht werden:
Das erste Argument steht für die Anzahl der Zeilen, die in der Ergebnismenge zurückgegeben werden sollen.
Das zweite Argument steht für den Versatz.