Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

DDD
Freigeben: 2024-10-27 02:54:30
Original
860 Leute haben es durchsucht

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

Gesamtzeilenanzahl mit LIMIT-Bedingung abrufen

Bei Verwendung einer SQL-Abfrage mit einer LIMIT-Klausel für die Paginierung wird die Gesamtzahl der Zeilen ermittelt eine Herausforderung. Der Standardansatz besteht darin, die Abfrage zweimal auszuführen, einmal ohne die LIMIT-Klausel, um die Zeilenanzahl zu erhalten, und dann noch einmal mit LIMIT, um die paginierten Daten abzurufen. Dieser Vorgang kann bei komplexen Abfragen zeitaufwändig sein.

Allerdings gibt es in MySQL 4.0.0 eine effizientere Lösung:

Verwendung von SQL_CALC_FOUND_ROWS und FOUND_ROWS()

Die Option SQL_CALC_FOUND_ROWS kann der Abfrage nach der SELECT-Anweisung hinzugefügt werden. Dadurch wird MySQL angewiesen, die Gesamtzahl der Zeilen zu berechnen, ohne die LIMIT-Bedingung zu berücksichtigen. Um die Gesamtzahl der Zeilen abzurufen, ist eine zweite Abfrage mit der Funktion FOUND_ROWS() erforderlich.

Verwendung:

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

Hinweis: Es ist wichtig, die zweite Abfrage unmittelbar nach der ersten auszuführen, da SQL_CALC_FOUND_ROWS die Zeilenanzahl nicht dauerhaft speichert.

Veraltung von SQL_CALC_FOUND_ROWS und FOUND_ROWS()

As Von MySQL 8.0.17 sind der Abfragemodifikator SQL_CALC_FOUND_ROWS und die Funktion FOUND_ROWS() veraltet und werden in einer zukünftigen MySQL-Version entfernt. Es wird empfohlen, stattdessen COUNT zu verwenden:

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

Das obige ist der detaillierte Inhalt vonWie kann ich die Gesamtzeilenzahl mit LIMIT 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!