Wie ermittelt man die Gesamtergebnisanzahl in MySQL mit Offset und Limit beim Paginieren?

Barbara Streisand
Freigeben: 2024-10-23 12:12:01
Original
487 Leute haben es durchsucht

How to Determine Total Result Count in MySQL with Offset and Limit while Paginating?

Bestimmen der Gesamtergebnisanzahl in MySQL mit Offset und Limit

Paginierung ist ein entscheidender Aspekt der Webentwicklung und ermöglicht die effiziente Anzeige großer Datensätze über mehrere Seiten hinweg. Bei der Verwendung von Offsets und Limits in MySQL-Abfragen ist es wichtig, die Gesamtzahl der Ergebnisse zu bestimmen, um die erforderliche Paginierung zu berechnen.

Ein Ansatz besteht darin, die Abfrage zweimal auszuführen: einmal mit dem Limit, um die anzuzeigenden Ergebnisse abzurufen, und und wieder ohne die Begrenzung, die Gesamtzahl der Zeilen zu zählen. Diese Methode ist jedoch ineffizient und kann die Datenbankressourcen belasten.

Eine effizientere Lösung ist die Verwendung des Schlüsselworts SQL_CALC_FOUND_ROWS. Dieses Schlüsselwort weist MySQL an, die Gesamtzahl der Zeilen zu berechnen, die ohne die Begrenzung zurückgegeben worden wären. Die Gesamtzahl kann dann mit der Funktion FOUND_ROWS() abgerufen werden.

Betrachten Sie beispielsweise die folgende Abfrage:

SELECT * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;
Nach dem Login kopieren

Um die Gesamtzahl der Zeilen zu ermitteln, fügen Sie am Anfang SQL_CALC_FOUND_ROWS hinzu der Abfrage:

SELECT SQL_CALC_FOUND_ROWS * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;
Nach dem Login kopieren

Verwenden Sie nach der Ausführung dieser Abfrage FOUND_ROWS(), um die Gesamtzahl abzurufen:

$total_results = $this->db->query('SELECT FOUND_ROWS()')->row()->{'FOUND_ROWS()'};
Nach dem Login kopieren

Dieser Ansatz bietet eine effiziente Möglichkeit, die Gesamtzahl der Ergebnisse zu ermitteln ohne dass eine gesonderte Abfrage erforderlich ist. Es spart Rechenressourcen und gewährleistet eine optimale Datenbankleistung, insbesondere bei großen Datensätzen.

Das obige ist der detaillierte Inhalt vonWie ermittelt man die Gesamtergebnisanzahl in MySQL mit Offset und Limit beim Paginieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!