Heim > Datenbank > MySQL-Tutorial > Wie kann die Gesamtzeilenanzahl in paginierten SQL-Abfragen effizient ermittelt werden?

Wie kann die Gesamtzeilenanzahl in paginierten SQL-Abfragen effizient ermittelt werden?

Linda Hamilton
Freigeben: 2024-10-30 10:44:28
Original
779 Leute haben es durchsucht

How to Efficiently Determine Total Row Count in Paginated SQL Queries?

Bestimmen der Gesamtzeilenzahl mit Paginierung

Bei der Implementierung der Paginierung in einer SQL-Abfrage kann die genaue Bestimmung der Gesamtzahl der Zeilen von entscheidender Bedeutung sein. Das zweimalige Ausführen der Abfrage – einmal ohne die LIMIT-Klausel zum Zählen der Zeilen und einmal mit der LIMIT-Klausel zum Abrufen der paginierten Daten – ist möglicherweise nicht optimal, insbesondere bei komplexen Abfragen.

Glücklicherweise bietet MySQL eine elegante Lösung mit die Konstrukte SQL_CALC_FOUND_ROWS und FOUND_ROWS(). Durch das Hinzufügen von SQL_CALC_FOUND_ROWS zur Hauptabfrage zählt MySQL die Gesamtzahl der Zeilen, auch wenn die LIMIT-Klausel vorhanden ist. Eine nachfolgende Abfrage mit FOUND_ROWS() ruft diese Anzahl ab.

Hier ein Beispiel:

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;
SELECT FOUND_ROWS();
Nach dem Login kopieren

Dieser Ansatz ist schneller als die zweimalige Ausführung der Abfrage und liefert eine genaue Gesamtzahl.

Veraltete Funktionen in MySQL 8

In MySQL 8.0.17 waren SQL_CALC_FOUND_ROWS und FOUND_ROWS() veraltet. Für neuere MySQL-Versionen wird empfohlen, stattdessen COUNT zu verwenden.

SELECT * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT COUNT(*) WHERE id > 100;
Nach dem Login kopieren

Durch die Nutzung dieser Techniken können Entwickler Zeilen in paginierten SQL-Abfragen genau zählen, ohne den Aufwand mehrerer Abfragen.

Das obige ist der detaillierte Inhalt vonWie kann die Gesamtzeilenanzahl in paginierten SQL-Abfragen effizient ermittelt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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