¿Cuál es la forma más eficaz de seleccionar las últimas n filas de una tabla sin cambiar la estructura de la tabla?

Resuelto thegad asked hace 15 años • 8 respuestas

¿Cuál es la forma más eficiente de seleccionar las últimas n filas de una tabla usando MySQL? La tabla contiene millones de filas y en un momento dado no sé qué tan grande es la tabla (está en constante crecimiento). La tabla tiene una columna que se incrementa automáticamente y se utiliza como identificador único para cada fila.

thegad avatar Sep 23 '08 06:09 thegad
Aceptado
SELECT * FROM table_name ORDER BY auto_incremented_id DESC LIMIT n
Eran Galperin avatar Sep 22 '2008 23:09 Eran Galperin

(Similar a la respuesta de "marco"),
mi favorita también es la función max() de MySQL, en una sola línea , pero hay otras formas de estar seguro:

SELECT whatever FROM mytable WHERE id > (SELECT max(id)-10 FROM mytable);

... y obtienes "última identificación menos 10", normalmente las últimas 10 entradas de esa tabla.

Es una forma breve de evitar el error 1111 ("Uso no válido de la función de grupo") no solo si hay una fila de incremento automático (aquí id).
La función max() se puede utilizar de muchas maneras.

tron5 avatar Feb 19 '2016 12:02 tron5