Zählung von Zeilen über LIMIT hinaus in MySQL-Abfragen
Problem:
Beim Ausführen einer MySQL-Abfrage Mit einer LIMIT-Klausel kann es schwierig sein, die Gesamtzahl der Zeilen in der Tabelle zu ermitteln, die die Abfragebedingungen erfüllen. Dies gilt insbesondere bei der Verwendung komplexer JOIN-Anweisungen und WHERE-Klauseln.
Lösung:
Um dieses Problem zu beheben, stellt MySQL das Schlüsselwort SQL_CALC_FOUND_ROWS bereit. Wenn dieses Schlüsselwort verwendet wird, weist es MySQL an, die Gesamtzahl der Zeilen zu berechnen, die ohne die LIMIT-Klausel abgerufen worden wären.
Beispiel:
Betrachten Sie das folgende MySQL Abfrage:
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
Um die Gesamtzahl der Zeilen ohne die LIMIT-Klausel zu erhalten, führen Sie die folgenden zwei Anweisungen in derselben Reihenfolge aus:
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 erste Anweisung berechnet die Gesamtzahl der Zeilen zufriedenstellend die Abfragebedingungen, während die zweite Anweisung die Gesamtzahl aus der Funktion FOUND_ROWS() abruft.
Das obige ist der detaillierte Inhalt vonWie zähle ich Zeilen über LIMIT hinaus in MySQL-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!