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

Come contare tutti i record ma recuperare solo (LIMIT) un numero specifico per la visualizzazione?

MySQL ha un supporto speciale per questo genere di cose. Innanzitutto, includi SQL_CALC_FOUND_ROWS nella tua SELEZIONE:

SELECT SQL_CALC_FOUND_ROWS *
FROM Badges
WHERE UID = '$user'
ORDER by Date DESC
LIMIT 10 -- Or whatever

Quindi estrai le righe e guarda immediatamente FOUND_ROWS() così:

SELECT FOUND_ROWS()

per ottenere il numero di righe che corrispondono alla tua query originale senza considerare la clausola LIMIT.

Questo è specifico per MySQL, ma dovrebbe essere un po' più veloce che eseguire due query.