MySQL obsługuje FOUND_ROWS()
funkcja
aby znaleźć nieograniczoną liczbę wierszy, które zostałyby zwrócone z poprzedniego ograniczonego zapytania.
SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Zauważ, że (a) musisz dołączyć SQL_CALC_FOUND_ROWS
oraz (b) że jest to konkretne rozszerzenie MySQL, które nie będzie działać na innym RDBMS (chociaż każde z nich może mają na to swój własny sposób.)
Niekoniecznie jest to najlepszy sposób robienia rzeczy, nawet jeśli może się tak wydawać; nadal musisz wydać dwie instrukcje, wprowadzasz niestandardowy SQL, a rzeczywiste COUNT
ing prawdopodobnie będzie miał podobną prędkość do prostego SELECT COUNT(*)...
w każdym razie. Sam byłbym skłonny trzymać się standardowego sposobu robienia tego.