MySQL supporta un FOUND_ROWS()
funzione
per trovare il numero illimitato di righe che sarebbero state restituite dalla precedente query limitata.
SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0' LIMIT 10,20
SELECT FOUND_ROWS();
Nota che (a) devi includere SQL_CALC_FOUND_ROWS
opzione e (b) che si tratta di un'estensione MySQL specifica che non funzionerà su un altro RDBMS (sebbene ciascuno potrebbe hanno il loro modo di farlo.)
Questo non è necessariamente il modo migliore di fare le cose, anche se potrebbe sembrarlo; devi ancora emettere due istruzioni, stai introducendo SQL non standard e l'attuale COUNT
È probabile che ing abbia una velocità simile a un semplice SELECT COUNT(*)...
comunque. Sarei propenso ad attenermi al modo standard di farlo, io stesso.