MySQL suporta um
FOUND_ROWS()
função
para encontrar o número ilimitado de linhas que teriam sido retornadas da consulta limitada anterior. SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Observe que (a) você precisa incluir o
SQL_CALC_FOUND_ROWS
opção, e (b) que esta é uma extensão MySQL específica que não funcionará em outro RDBMS (embora cada um possa têm sua própria maneira de fazer isso.) Essa não é necessariamente a melhor maneira de fazer as coisas, mesmo que pareça; você ainda precisa emitir duas instruções, está introduzindo SQL não padrão e o
COUNT
real é provável que seja uma velocidade semelhante a um simples SELECT COUNT(*)...
de qualquer forma. Eu estaria inclinado a seguir a maneira padrão de fazer isso, eu mesmo.