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.
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().
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>
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!