MySQL stöder en FOUND_ROWS()
funktion
för att hitta det obegränsade antalet rader som skulle ha returnerats från den tidigare begränsade frågan.
SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Observera att (a) du måste inkludera SQL_CALC_FOUND_ROWS
alternativ, och (b) att detta är ett specifikt MySQL-tillägg som inte fungerar på ett annat RDBMS (även om de var och en kan har sitt eget sätt att göra detta.)
Det här är inte nödvändigtvis det bästa sättet att göra saker på, även om det kanske känns så; du måste fortfarande utfärda två satser, du introducerar icke-standard SQL och den faktiska COUNT
ning är sannolikt en liknande hastighet som en enkel SELECT COUNT(*)...
i alla fall. Jag skulle själv vara benägen att hålla fast vid standardsättet att göra det på.