Heim  >  Artikel  >  Datenbank  >  Wie rufen Sie die Gesamtzahl der Zeilen ab, selbst wenn Sie die Paginierung mit LIMIT in SQL verwenden?

Wie rufen Sie die Gesamtzahl der Zeilen ab, selbst wenn Sie die Paginierung mit LIMIT in SQL verwenden?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 15:29:01811Durchsuche

How do you retrieve the total number of rows even when using pagination with LIMIT in SQL?

Gesamtzahl der Zeilen auch bei Verwendung der Paginierung mit LIMIT abrufen

Beim Paginieren von Ergebnissen mit der LIMIT-Klausel in SQL kann es umständlich sein, die Abfrage zweimal ausführen zu müssen, um sie zu erhalten die Gesamtzahl der Zeilen. Dies gilt insbesondere für komplexe Abfragen, deren Ausführung viel Zeit in Anspruch nimmt. Glücklicherweise gibt es eine Lösung, die Ihnen dies mit einer einzigen Abfrage ermöglicht.

SQL_CALC_FOUND_ROWS und FOUND_ROWS()

Ab MySQL 4.0.0 können Sie die Option SQL_CALC_FOUND_ROWS in Ihrer Hauptabfrage verwenden um MySQL anzuweisen, die Gesamtzahl der Zeilen zu zählen und dabei die LIMIT-Klausel zu ignorieren. Dazu müssen Sie eine zweite Abfrage ausführen, um die Zeilenanzahl abzurufen. Allerdings ist diese Abfrage in der Regel viel einfacher und schneller als die Hauptabfrage zum Datenabruf.

So verwenden Sie sie:

<code class="sql">SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;
SELECT FOUND_ROWS();</code>

Die zweite Abfrage, die unmittelbar auf die erste folgt, erfasst die gesamte Zeile Zählen mit der Funktion FOUND_ROWS().

Veraltet in MySQL 8.0

In MySQL-Versionen 8.0.17 und höher sind der Modifikator SQL_CALC_FOUND_ROWS und die Funktion FOUND_ROWS() veraltet und werden in einem entfernt zukünftige Veröffentlichung. In der MySQL-Dokumentation wird nun empfohlen, stattdessen COUNT zu verwenden, um die Gesamtanzahl der Zeilen zu ermitteln.

Zum Beispiel:

<code class="sql">SELECT * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT COUNT(*) WHERE id > 100;</code>

Fazit

Durch die Nutzung dieser Techniken können Sie die effektiv abrufen Gesamtzahl der Zeilen, auch wenn die Paginierung mit der LIMIT-Klausel verwendet wird, wodurch Ihre Abfrageeffizienz verbessert und Ihr Code optimiert wird.

Das obige ist der detaillierte Inhalt vonWie rufen Sie die Gesamtzahl der Zeilen ab, selbst wenn Sie die Paginierung mit LIMIT in SQL verwenden?. 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