sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo contar todos los registros pero solo recuperar (LIMITAR) un número específico para mostrar?

MySQL tiene un soporte especial para este tipo de cosas. Primero, incluya SQL_CALC_FOUND_ROWS en su SELECT:

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

Luego extraiga sus filas e inmediatamente mire FOUND_ROWS() así:

SELECT FOUND_ROWS()

para obtener el número de filas que coincidieron con su consulta original sin tener en cuenta la cláusula LIMIT.

Esto es específico de MySQL, pero debería ser un poco más rápido que hacer dos consultas.