Ermitteln der Zeilenanzahl trotz LIMIT in MySQL-Abfragen
MySQL-Abfragen mit der LIMIT-Klausel ermöglichen es Ihnen, die Anzahl der zurückgegebenen Zeilen einzuschränken. Aber was ist, wenn Sie auch die Gesamtzahl der Zeilen abrufen müssen, die mit der Abfrage übereinstimmen?
Abfrage mit LIMIT-Klausel und Zeilenanzahl
Betrachten Sie die folgende Abfrage, die a abruft Teilmenge von Zeilen aus zwei Tabellen mit JOIN:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10
Diese Abfrage gibt die ersten 10 Zeilen zurück, die die angegebenen Bedingungen erfüllen.
Lösung mit SQL_CALC_FOUND_ROWS
Um die Gesamtzahl der Zeilen zu erhalten, können Sie die Funktion SQL_CALC_FOUND_ROWS in Verbindung mit der LIMIT-Klausel verwenden:
SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10 SELECT FOUND_ROWS();
Die Funktion SQL_CALC_FOUND_ROWS legt eine interne Zeilenanzahlvariable fest, bevor die Abfrage mit der LIMIT-Klausel ausgeführt wird. Die Funktion FOUND_ROWS() ruft dann den Wert dieser Variablen ab, der die Gesamtzahl der Zeilen darstellt, die ohne LIMIT zurückgegeben worden wären.
Mit dieser Technik können Sie sowohl die begrenzte Teilmenge der Zeilen als auch die erhalten Gesamtzeilenanzahl, ohne dass eine zusätzliche Abfrage erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie erhalten Sie die Gesamtzahl der Zeilen, wenn Sie „LIMIT' in MySQL-Abfragen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!