Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Doctrine Query, um die Gesamtzahl der Ergebnisse in MySQL mit LIMIT zu finden

Es gibt eine Paginierungsfunktion, die in 2.2 integriert ist und etwas Ähnliches tut, was Sie suchen:

https://www.doctrine -project.org/projects/doctrine-orm/en/latest/tutorials/pagination.html#pagination

Aber ich glaube nicht, dass es SQL_CALC_FOUND_ROWS verwendet :Es führt zwei (oder drei, je nach Konfiguration) separate Abfragen aus, um die Ergebnisse zu erhalten, und das ist häufig die richtige Vorgehensweise.

Wenn Sie wirklich darauf bestehen, die MySQL-Funktion zu verwenden, müssen Sie meines Erachtens rohes SQL und ein Resultset-Mapping verwenden. Hier ist ein Beispiel:

Anzahl der Zeilen in Lehre 2

Testen Sie in einer ganz anderen Anmerkung, ob SQL_CALC_FOUND_ROWS ist es wirklich wert, für Ihre spezielle Anfrage verwendet zu werden. Count ist in MySQL gut für Abfragen wie die von Ihnen optimierte. Siehe insbesondere diese Frage:

Was ist am schnellsten? SELECT SQL_CALC_FOUND_ROWS FROM `table`, oder SELECT COUNT(*)