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

Comment compter tous les enregistrements mais ne récupérer (LIMITER) qu'un nombre spécifique pour l'affichage ?

MySQL a un support spécial pour ce genre de choses. Tout d'abord, incluez SQL_CALC_FOUND_ROWS dans votre SELECT :

SELECT SQL_CALC_FOUND_ROWS *
FROM Badges
WHERE UID = '$user'
ORDER by Date DESC
LIMIT 10 -- Or whatever

Ensuite, sortez vos lignes et regardez immédiatement FOUND_ROWS() comme ceci :

SELECT FOUND_ROWS()

pour obtenir le nombre de lignes correspondant à votre requête d'origine sans tenir compte de la clause LIMIT.

Ceci est spécifique à MySQL, mais cela devrait être un peu plus rapide que de faire deux requêtes.