Pregunta

Estoy usando mysql y enfrentando algún problema. Quiero recuperar la última fila que se inserta.

<< A continuación se muestran detalles >>

A continuación se muestra cómo creé la tabla.

create table maxID (myID varchar(4))

Inserté cuatro valores en él a continuación

insert into maxID values ('A001')
insert into maxID values ('A002')
insert into maxID values ('A004')
insert into maxID values ('A003')

Cuando ejecuto select myID, last_insert_id() as NewID from maxID, Obtengo la salida como se muestra a continuación

myId NewID
A001   0  
A002   0  
A004   0  
A003   0    

Cuando probé el código a continuación,

select myId, last_insert_id() as NewID, @rowid:=@rowid+1 as myrow from maxID, (SELECT @rowid:=0) as init

Obtengo la salida como se muestra a continuación.

myId NewID  rowid
A001   0      1
A002   0      2
A004   0      3
A003   0      4

Sin embargo, cuando uso código select myId, last_insert_id() as NewID, @rowid:=@rowid+1 as myrow from maxID, (SELECT @rowid:=0) as init where @rowid = 4, Recibo error como Uknown column 'myrow' in where clause

Cuando uso where @rowid=4, No obtengo ningún dato en tablas.

Enlace para jugar con datos

Nota: Aquí estoy usando 4 solo para obtener la salida deseada. Más tarde puedo obtener esto de una consulta (select max(rowid) from maxID)

Por favor sugiéreme qué debe hacer si quiero ver solo el último registro, es decir, A003.

Gracias por tu tiempo.

Actualizar:

Ya tengo millones de datos en mi tabla, por lo que no puedo agregar una nueva columna como se sugiere a continuación.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top