MySQL podporuje FOUND_ROWS()
funkce
najít neomezený počet řádků, které by byly vráceny z předchozího omezeného dotazu.
SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Všimněte si, že (a) musíte zahrnout SQL_CALC_FOUND_ROWS
a (b) že se jedná o konkrétní rozšíření MySQL, které nebude fungovat na jiném RDBMS (ačkoli může mají svůj vlastní způsob, jak to udělat.)
To není nutně nejlepší způsob, jak věci dělat, i když to tak může vypadat; stále musíte vydat dva příkazy, zavádíte nestandardní SQL a skutečný COUNT
ing bude mít pravděpodobně podobnou rychlost jako jednoduchý SELECT COUNT(*)...
tak jako tak. Sám bych se přikláněl k tomu, abych se držel standardního způsobu.