sql >> Databáze >  >> RDS >> Mysql

Jak spočítat všechny záznamy, ale načíst (LIMIT) pouze konkrétní číslo pro zobrazení?

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ů.



  1. Existuje v databázích Oracle nějaký booleovský typ?

  2. Jak vytvářet úlohy v edici SQL Server Express

  3. MySQL Deadlock s vložkou, která vyvolává spoušť

  4. SQLite Self-Join