MySQL má speciální podporu pro tento druh věcí. Nejprve zahrňte SQL_CALC_FOUND_ROWS
ve vašem SELECT:
SELECT SQL_CALC_FOUND_ROWS *
FROM Badges
WHERE UID = '$user'
ORDER by Date DESC
LIMIT 10 -- Or whatever
Poté vytáhněte řádky a poté se okamžitě podívejte na FOUND_ROWS()
takhle:
SELECT FOUND_ROWS()
abyste získali počet řádků, které odpovídaly vašemu původnímu dotazu, bez ohledu na klauzuli LIMIT.
Toto je specifické pro MySQL, ale mělo by to být o něco rychlejší než provádění dvou dotazů.