Mysql : pagination et nombre total de résultats

Je suis confronté à un problème bateau. Je dois concevoir un moteur de recherche sur mon site, qui utilise MySQL de façon trés classique. Je génère une bête requête de type SELECT qui me retourne des résultats.

Le souci, c'est que d'un côté, je ne veux sélectionner qu'une fraction de ces résultats pour afficher une pagination. J'utilise la trés classique clause LIMITE. D'un autre côté, je veux retourner le nombre total de réponses correspondants à la recherche, comme le fait n'importe quel moteur de recherche digne de ce nom.

Je peux le faire avec deux requêtes :

SELECT COUNT(*) FROM table WHERE ...

SELECT * FROM table WHERE ... LIMIT 20

Ça marche, mais c'est moche ((pas glop)). Voici la bonne méthode :

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE ... LIMIT 20

SELECT FOUND_ROWS()

Simple et efficace. Merci MySQL.