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

Obtener el último registro de mysql

Casi listo. Logró obtener la orden de inserción. Así que:

select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;

En mi consola obtengo lo siguiente:

mysql> select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as
init ORDER BY myrow desc LIMIT 1;
+------+-------+
| myId | myrow |
+------+-------+
| A003 |     4 |
+------+-------+
1 row in set (0.00 sec)

Demostración

ACTUALIZAR

Yak tiene razón. Mi solución no es determinista. Tal vez funcione para una pequeña cantidad de registros. Encontré toneladas de publicaciones sobre la falta de confiabilidad de la clasificación predeterminada de una instrucción SELECT (aquí, por ejemplo ).Siguientes pasos:

  • ¿Bajo qué condiciones la clasificación SELECT predeterminada coincide con el orden de inserción?
  • ¿Es posible obtener el último registro insertado en una tabla sin una identificación incremental o una marca de tiempo de inserción?

Sé que no es una respuesta, pero establecer el problema limita el problema.