logo

MySQL-Limit

MySQL-Limit-Abfragen werden verwendet beschränken die Anzahl der Zeilen, die aus der Ergebnismenge zurückgegeben werden, und nicht holen der gesamte Satz in der MySQL-Datenbank. Die Limit-Klausel funktioniert mit der SELECT-Anweisung, um nur die angegebene Anzahl von Zeilen zurückzugeben. Diese Abfrage akzeptiert nur ein oder zwei Argumente und ihre Werte sollten Null oder eine beliebige positive Ganzzahl sein.

Dies ist in einem solchen Fall wichtig, wenn die Tabelle Tausende von Zeilen enthält oder Sie nur die kürzlich eingefügten Daten zurückgeben möchten. Mit anderen Worten: Wenn Sie nicht daran interessiert sind, alle von der Abfrage zurückgegebenen Zeilen zu erhalten, verwenden Sie die MySQL-Limit-Klausel mit der SELECT-Anweisung. Es verbessert die Leistung der Abfrage und verhindert sogar einen Systemabsturz, wenn die Tabelle eine große Anzahl von Daten enthält.

Um nur die angegebenen Zeilen aus der Tabelle abzurufen, verwendet MySQL die GRENZE Klausel, während SQL die verwendet SPITZE Klausel, und Oracle verwendet die ZEILENNUMMER Klausel mit der WÄHLEN Stellungnahme.

Syntax

Im Folgenden finden Sie die Syntax für die Verwendung der Limit-Abfrage in MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

In der obigen Syntax können wir sehen:

Column_list: Es ist der Name der Spalte, die Sie zurückgeben möchten.

Tabellenname: Es ist der Name der Tabelle, die Ihren Spaltennamen enthält.

Versatz: Es gibt die Nummer einer Zeile an, aus der Sie zurückkehren möchten. Der Offset der Zeile beginnt bei 0, nicht bei 1.

Zählen: Es gibt die maximale Anzahl von Zeilen an, die Sie zurückgeben möchten.

Die folgende visuelle Darstellung erklärt es deutlicher:

MySQL-Limit

HINWEIS: Wenn Sie mit der Limit-Klausel nur ein Argument angeben, geht MySQL davon aus, um die maximale Anzahl von Zeilen für die Rückgabe der Ausgabe aus der Ergebnismenge zu bestimmen. In diesem Fall sind die Argumente der Limit-Klausel, der Offset und die Anzahl gleichwertig.

LIMIT-Klausel mit ORDER BY-Klausel

Der Benutzer muss die Limit-Klausel mit der Order By-Klausel verwenden. Ohne die Order By-Klausel erhalten Sie das Ergebnis in einer unbestimmte Reihenfolge . In diesem Fall ist es schwierig zu wissen, aus welchen Zeilen die Abfrage Ergebnisse zurückgibt. Es ist also eine gute Angewohnheit, sie anzuwenden Group By-Klausel mit einer Limit-Klausel zum Abrufen der Zeilen in einer bestimmten Reihenfolge.

Um das Ergebnis in einer eindeutigen Reihenfolge abzurufen, kann die folgende Syntax verwendet werden:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

Beispiele für MySQL-Limits

Lassen Sie uns eine Beispieltabelle in der Datenbank erstellen, die die folgenden Daten enthält, und anhand verschiedener Beispiele verstehen, wie die Limit-Klausel in MySQL funktioniert:

Tabelle: Mitarbeiter

MySQL-Limit

1. MySQL-Limit zur Rückgabe höchster oder niedrigster Zeilen

Die folgende Aussage wurde verwendet, um die fünf besten jüngeren Mitarbeiter zu ermitteln:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Diese Anweisung sortiert zunächst das Alter des Mitarbeiters mithilfe der Group By-Klausel und gibt dann mit der Limit-Klausel das Top-5-Ergebnis zurück. Nachdem wir die oben genannten Schritte ausgeführt haben, erhalten wir die folgende Ausgabe:

MySQL-Limit

2. MySQL-Limit zum Abrufen eines Zeilenbereichs mithilfe des Offsets

Manchmal möchten Sie ein Ergebnis zwischen den Wertebereichen erhalten. Sie verfügen beispielsweise über eine große Anzahl von Zeilen, um Daten zu Anwendungen anzuzeigen und diese dann in Seiten aufzuteilen, und jede Seite enthält maximal 10 Zeilen in einer Tabelle. In diesem Fall können Sie die folgende Abfrage verwenden, um einen Zeilenbereich abzurufen:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

Diese Anweisung gibt die Zeilen beginnend mit Zeilennummer 3 zurück und geht bis maximal zur siebten Zeile. Außerdem wird das Einkommen des Mitarbeiters von der höchsten zur niedrigsten Reihenfolge sortiert. Führen Sie die Abfrage aus und Sie erhalten die folgende Ausgabe:

c#-Beispielcode
MySQL-Limit

3. MySQL-Limit mit WHERE-Klausel

MySQL Limit kann auch mit der WHERE-Klausel bearbeitet werden. Zunächst wird die angegebene Bedingung in der Tabelle überprüft und die Zeilen erstellt, die der Bedingung entsprechen.

Diese Abfrage wählt die ersten fünf Mitarbeiter aus, deren Alter älter als 30 Jahre ist. Hier haben wir auch die Order By-Klausel verwendet, um die Mitarbeiter in absteigender Reihenfolge nach ihrem Einkommen zu sortieren.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

Nach erfolgreicher Ausführung der obigen Anweisung erhalten wir die folgende Ausgabe:

MySQL-Limit

4. MySQL LIMIT, um den n-thöchsten oder niedrigsten Wert zu erhalten

Manchmal möchten wir die Zeilen mit dem n-thöchsten oder niedrigsten Wert erhalten. In diesem Fall können wir die folgende MySQL LIMIT-Klausel verwenden, um das erwartete Ergebnis zu erhalten:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

In dieser Syntax gibt die LIMIT n-1, 1-Klausel 1 Zeile zurück, die bei Zeile n beginnt.

Die folgende Abfrage gibt beispielsweise die Mitarbeiterinformationen zurück, die das zweithöchste Einkommen haben:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

Wenn Sie die obige Anweisung ausführen, wird die folgende Abfrage ausgegeben:

MySQL-Limit

Bitte beachten Sie, dass die obige Abfrage nur funktioniert, wenn Ihre Tabelle nicht zwei Mitarbeiter enthält, die über ein gewisses Einkommen verfügen. In diesem Fall verwenden wir DENSE_RANK () um ein genaueres Ergebnis zu erhalten.