Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ermittelt man die Gesamtergebnisanzahl in MySQL mit Offset und Limit beim Paginieren?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-23 12:12:01488Durchsuche

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;

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;

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()'};

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!

Stellungnahme:
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