Vous pouvez utiliser SQL_CALC_FOUND_ROWS comme ceci
SELECT SQL_CALC_FOUND_ROWS * FROM users limit 0,5;
Il obtient le nombre de lignes avant l'application de toute clause LIMIT. Il a besoin d'une autre requête pour récupérer les résultats, mais cette requête peut simplement être
SELECT FOUND_ROWS()
et donc vous n'avez pas à répéter votre requête compliquée.