Wie zähle ich die gesamten Abfrageergebnisse in MySQL mit Offset- und Limit-Optimierung?

DDD
Freigeben: 2024-10-23 13:08:30
Original
527 Leute haben es durchsucht

How to Count Total Query Results in MySQL with Offset and Limit Optimization?

Abrufen der gesamten Abfrageergebnisse in MySQL mit Offset und Limit

In Paginierungsszenarien ist es entscheidend, die Gesamtzahl der Ergebnisse in einem zu bestimmen MySQL-Abfrage zur Berechnung der Gesamtzahl der erforderlichen Seiten. Ein Ansatz besteht darin, die Abfrage zweimal auszuführen, einmal mit der Beschränkung zum Abrufen der paginierten Ergebnisse und einmal ohne Beschränkung zum Zählen der Gesamtzeilen. Dieser Ansatz ist jedoch möglicherweise ineffizient.

Geben Sie SQL_CALC_FOUND_ROWS ein: Eine optimiertere Lösung besteht darin, den Modifikator SQL_CALC_FOUND_ROWS in Ihrer ersten Abfrage zu verwenden. Durch die Einbeziehung dieses Modifikators berechnet MySQL die Gesamtzahl der übereinstimmenden Zeilen, bevor das Limit angewendet wird. Anschließend können Sie eine SELECT FOUND_ROWS()-Anweisung ausführen, um die Gesamtzahl abzurufen.

Verwendung:

Um SQL_CALC_FOUND_ROWS zu verwenden, fügen Sie es einfach am Anfang Ihrer Abfrage hinzu:

<code class="sql">SELECT SQL_CALC_FOUND_ROWS ...</code>
Nach dem Login kopieren

Führen Sie nach dem Ausführen der Abfrage Folgendes aus, um die Gesamtzahl der Zeilen abzurufen:

<code class="sql">SELECT FOUND_ROWS();</code>
Nach dem Login kopieren
Nach dem Login kopieren

Beispiel:

Sagen wir Sie haben eine Abfrage wie diese:

<code class="sql">SELECT * FROM `directory`
WHERE `category_id` = 12
ORDER BY `name` ASC
LIMIT 10 OFFSET 20;</code>
Nach dem Login kopieren

Um die Gesamtzahl der Ergebnisse zu berechnen, würden Sie die folgende zusätzliche Abfrage ausführen:

<code class="sql">SELECT FOUND_ROWS();</code>
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird die Gesamtzahl der Zeilen zurückgegeben die Verzeichnistabelle mit der Kategorie-ID gleich 12, sodass Sie die Gesamtzahl der für die Paginierung erforderlichen Seiten effizient bestimmen können.

Das obige ist der detaillierte Inhalt vonWie zähle ich die gesamten Abfrageergebnisse in MySQL mit Offset- und Limit-Optimierung?. 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
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!