Ermitteln von Gesamtergebnissen mit Offset und Limit in MySQL
Paginierung ermöglicht es Benutzern, große Datensätze in überschaubaren Blöcken zu durchsuchen. Um die Gesamtzahl der Seiten zu ermitteln, muss jedoch die Gesamtzahl der Ergebnisse bekannt sein. Bei Verwendung von Offset und Limit für die Paginierung scheint es ineffizient zu sein, dieselbe Abfrage zweimal auszuführen, einmal mit und einmal ohne Limit.
SQL_CALC_FOUND_ROWS: Eine Lösung
Zur Adressierung Für dieses Problem stellt MySQL ein spezielles Schlüsselwort bereit: SQL_CALC_FOUND_ROWS. Indem Sie dieses Schlüsselwort am Anfang Ihrer Abfrage hinzufügen, berechnet und speichert MySQL die Gesamtzahl der Zeilen, die ohne die LIMIT-Klausel zurückgegeben worden wären.
Beispielabfrage:
<code class="sql">SELECT SQL_CALC_FOUND_ROWS * FROM table_name WHERE category_id = '1' ORDER BY date_created DESC LIMIT 10 OFFSET 20;</code>
Gesamtzahl der Ergebnisse abrufen:
Nachdem Sie die obige Abfrage ausgeführt haben, können Sie den folgenden PHP-Code verwenden, um die Gesamtzahl der Ergebnisse abzurufen:
<code class="php">$totalRows = $db->query('SELECT FOUND_ROWS() AS total')->row()->total;</code>
Vorteile von SQL_CALC_FOUND_ROWS:
Das obige ist der detaillierte Inhalt vonWie kann ich die Gesamtzahl der Ergebnisse bei der MySQL-Paginierung mit Offset und Limit ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!