Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obtenha resultados de consulta de contagem ignorando a instrução LIMIT


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.