Mysql
 sql >> Base de données >  >> RDS >> Mysql

Doctrine Query pour trouver le nombre total de résultats dans MySQL avec LIMIT

Il existe une fonctionnalité de pagination, qui est intégrée à la version 2.2, et fait quelque chose de similaire à ce que vous recherchez :

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

Mais je ne crois pas qu'il utilise SQL_CALC_FOUND_ROWS  :il effectue deux (ou trois, selon la façon dont vous le configurez) requêtes distinctes pour obtenir les résultats, et c'est souvent la bonne façon de procéder.

Si vous insistez vraiment pour utiliser la fonctionnalité MySQL, je pense que vous devez utiliser du SQL brut et un mappage d'ensemble de résultats. Voici un exemple :

Nombre de lignes dans Doctrine 2

Sur une note complètement séparée, testez si SQL_CALC_FOUND_ROWS vaut vraiment la peine d'être utilisé pour votre requête particulière. Count est bien optimisé dans MySQL pour des requêtes comme celle que vous faites. Voir cette question en particulier :

Lequel est le plus rapide ? SELECT SQL_CALC_FOUND_ROWS FROM `table`, ou SELECT COUNT(*)