Seleccionar las últimas N filas de MySQL
Quiero seleccionar las últimas 50 filas de la base de datos MySQL dentro de la columna llamada id que es clave primaria. El objetivo es que las filas se ordenen por id en el orden ASC , por eso esta consulta no funciona
SELECT
*
FROM
`table`
ORDER BY id DESC
LIMIT 50;
También es notable que las filas podrían ser manipuladas (eliminadas) y es por eso que la siguiente consulta no funciona tampoco
SELECT
*
FROM
`table`
WHERE
id > ((SELECT
MAX(id)
FROM
chat) - 50)
ORDER BY id ASC;
Pregunta: ¿Cómo es posible recuperar las últimas N filas de la base de datos MySQL que se pueden manipular y estar en orden ASC ?
3 answers
Puedes hacerlo con una sub-consulta:
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC
Esto seleccionará las últimas 50 filas de table
, y luego ordenarlas en orden ascendente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-25 21:49:04
SELECT * FROM table ORDER BY id DESC,datechat desc LIMIT 50
Si tiene un campo de fecha que almacena la fecha(y la hora) en la que se envió el chat o cualquier campo que se rellene con datos incrementales(order by DESC) o desinscrementales( order by ASC) por fila, póngalo como segunda columna en la que los datos deben estar ordenados.
¡Eso es lo que funcionó para mí!!!! ¡espero que ayude!!!!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-26 12:11:31
SELECT * FROM table ORDER BY id DESC LIMIT 50
Guardar recursos haga una consulta, no hay necesidad de hacer consultas anidadas
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-06 21:40:43