MySQL understøtter en FOUND_ROWS()
funktion
for at finde det ubegrænsede antal rækker, der ville være blevet returneret fra den tidligere begrænsede forespørgsel.
SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Bemærk, at (a) du skal inkludere SQL_CALC_FOUND_ROWS
mulighed, og (b) at dette er en specifik MySQL-udvidelse, der ikke fungerer på et andet RDBMS (selvom de hver især må har deres egen måde at gøre dette på.)
Dette er ikke nødvendigvis den bedste måde at gøre tingene på, selvom det måske føles som det; du skal stadig udsende to sætninger, du introducerer ikke-standard SQL, og den faktiske COUNT
ing er sandsynligvis en lignende hastighed som en simpel SELECT COUNT(*)...
alligevel. Jeg ville selv være tilbøjelig til at holde fast i standardmåden at gøre det på.