MySQL поддържа FOUND_ROWS()
функция
за да намерите неограничен брой редове, които биха били върнати от предишната ограничена заявка.
SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Имайте предвид, че (а) трябва да включите SQL_CALC_FOUND_ROWS
опция и (б) че това е конкретно разширение на MySQL, което няма да работи на друга RDBMS (въпреки че всяко от тях може имат свой собствен начин да направят това.)
Това не е непременно най-добрият начин за правене на нещата, дори ако може да ви се струва; все още трябва да издадете две изявления, въвеждате нестандартен SQL и действителния COUNT
ing вероятно ще бъде подобна скорост на обикновен SELECT COUNT(*)...
така или иначе. Лично аз бих бил склонен да се придържам към стандартния начин да го направя.