Mysql
 sql >> Database >  >> RDS >> Mysql

Ottieni risultati di query di conteggio ignorando l'istruzione LIMIT

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.