Buenas,
Imaginaros que queremos mostrar los últimos 10 usuarios que se han registrado en nuestra web.
SELECT user
.name
FROM (user
)
ORDER BY user
.id
DESC
LIMIT 10
Es una buena costumbre tener en la estructura de tus bases de datos los siguientes fields:
created_at (TIMESTAMP) al que le asignaremos NOW() cada vez que le metamos un registro
updated_at (TIMESTAMP) con "on update CURRENT_TIMESTAMP"
Además, al campo created_at le añadimos un índice (acordaros de optimizar), así podremos hacer este tipo de consultas que, en bases de datos grandes, se nota:
SELECT user
.name
FROM (user
)
WHERE user
.created_at
>= NOW() - INTERVAL 1 MONTH
ORDER BY user
.id
DESC
LIMIT 10
¡Profit! =)
PD: Según la velocidad con la que obtengáis nuevos registros de usuarios, se puede cambiar el intervalo por 1 WEEK, 1 DAY, etc. Si lo afináis bien, podéis reducir sin problemas el tiempo de la consulta en más de 45 veces.