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
0als 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.