MySQL admite un FOUND_ROWS()
función
para encontrar el número ilimitado de filas que se habrían devuelto de la consulta limitada anterior.
SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Tenga en cuenta que (a) debe incluir el SQL_CALC_FOUND_ROWS
y (b) que esta es una extensión específica de MySQL que no funcionará en otro RDBMS (aunque cada uno de ellos puede tienen su propia manera de hacer esto).
Esta no es necesariamente la mejor manera de hacer las cosas, incluso si se siente así; todavía tiene que emitir dos declaraciones, está introduciendo SQL no estándar y el COUNT
real es probable que la velocidad sea similar a la de un simple SELECT COUNT(*)...
de todos modos. Me inclinaría a apegarme a la forma estándar de hacerlo yo mismo.