Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich die Gesamtzeilenzahl mit Paginierung in MySQL effizient abrufen?

DDD
Freigeben: 2024-10-27 06:42:02
Original
493 Leute haben es durchsucht

 How to Efficiently Retrieve Total Row Count with Pagination in MySQL?

Ermitteln der Gesamtzeilenanzahl mit LIMIT

Beim Ausführen von SQL-Abfragen mit Paginierung ist es häufig erforderlich, die Gesamtzeilenanzahl zu ermitteln. Normalerweise erfordert dies, dass die Abfrage zweimal ausgeführt wird, einmal ohne die LIMIT-Klausel, um die Gesamtzahl zu ermitteln.

Es gibt jedoch eine effizientere Möglichkeit, dies zu erreichen, ohne auf mehrere Abfragen zurückgreifen zu müssen.

SQL_CALC_FOUND_ROWS

Seit MySQL 4.0.0 kann die Option SQL_CALC_FOUND_ROWS verwendet werden. Es weist MySQL an, die Gesamtzeilenanzahl zu berechnen, auch wenn eine LIMIT-Klausel vorhanden ist.

Um diese Option zu verwenden, fügen Sie sie einfach nach der SELECT-Anweisung in der Hauptabfrage hinzu. Führen Sie dann eine separate Abfrage aus, um die Zeilenanzahl mit der Funktion FOUND_ROWS() abzurufen.

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;

SELECT FOUND_ROWS();
Nach dem Login kopieren

Hinweis: Obwohl SQL_CALC_FOUND_ROWS zwei Abfragen erfordert, ist es im Allgemeinen schneller als die zweimalige Ausführung der Hauptabfrage . Ab MySQL 8.0.17 ist diese Option jedoch veraltet und wird in einer zukünftigen Version entfernt.

Alternative: COUNT()

Als Alternative: Sie Sie können die Funktion COUNT() in einer separaten Abfrage verwenden, um die Gesamtanzahl der Zeilen zu ermitteln.

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

Diese Methode erfordert ebenfalls zwei Abfragen, ist jedoch ein neuerer und bevorzugter Ansatz.

Das obige ist der detaillierte Inhalt vonWie kann ich die Gesamtzeilenzahl mit Paginierung in MySQL effizient abrufen?. 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
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!