it-swarm.com.de

Gibt es einen Unterschied zwischen 'LIMIT 0, 1' und 'LIMIT 1'?

Ich bin kürzlich auf Beispielcodes gestoßen, die sich durch diese Notationen unterschieden.

SELECT * FROM table LIMIT 0, 1
SELECT * FROM table LIMIT 1

Das erste Argument sollte als Offset betrachtet werden, wenn ich mich nicht irre. Der Zweck dieser beiden Abfragen besteht darin, die Auswahl auf die erste Zeile von table zu beschränken.

Gibt es einen negativen Effekt beim Weglassen des Offsets/wie ist es möglich, ihn überhaupt wegzulassen? Oder habe ich die Fragen falsch verstanden?

16
Gimu

Wie die Dokumentation sagt:

Die Klausel LIMIT kann verwendet werden, um die Anzahl der von der Anweisung SELECT zurückgegebenen Zeilen zu beschränken. LIMIT akzeptiert ein oder zwei numerische Argumente, die beide nichtnegative Ganzzahlkonstanten sein müssen (außer bei Verwendung vorbereiteter Anweisungen).

Bei zwei Argumenten gibt das erste Argument den Versatz der ersten zurückzugebenden Zeile und das zweite die maximale Anzahl der zurückzugebenden Zeilen an. The offset of the initial row is 0 (not 1).

Die Klausel LIMIT wird in der Anweisung SELECT verwendet, um die Anzahl der Zeilen in einer Ergebnismenge zu beschränken. Die LIMIT -Klausel akzeptiert ein oder zwei Argumente. Die Werte beider Argumente müssen Null oder positive Ganzzahlkonstanten sein.

Im Folgenden wird die Syntax der Klausel LIMIT mit zwei Argumenten veranschaulicht:

SELECT * FROM tbl
LIMIT offset, count;

Sehen wir uns an, was Offset und Anzahl in der LIMIT-Klausel bedeuten:

  • Das offset gibt den Versatz der ersten zurückzugebenden Zeile an. Der Versatz der ersten Zeile ist 0, nicht 1.
  • Das count gibt die maximale Anzahl der zurückzugebenden Zeilen an.

Wenn Sie LIMIT mit einem Argument verwenden, wird dieses Argument verwendet, um die maximale Anzahl von Zeilen anzugeben, die vom Anfang der Ergebnismenge zurückgegeben werden sollen.

SELECT * FROM tblLIMIT count;

Die obige Abfrage entspricht der folgenden Abfrage mit der Klausel LIMIT, die zwei Argumente akzeptiert:

SELECT * FROM tblLIMIT 0, count;

Die LIMIT -Klausel, die häufig mit der ORDER BY - Klausel verwendet wird. Zuerst verwenden Sie die Klausel ORDER BY, Um die Ergebnismenge nach bestimmten Kriterien zu sortieren, und dann verwenden Sie die Klausel LIMIT, um die niedrigsten oder höchsten Werte zu finden.

13
oNare