¿Cómo obtener la ID de la última fila actualizada en MySQL?

Muchas veces, requerimos actualizar los datos en función de la última identificación de tabla actualizada.

Deberíamos escribir una consulta de actualización de tal manera que podamos obtener la última ID actualizada en la declaración
de actualización . abajo:

CREANDO UNA TABLA


CREATE TABLE 
tbl(Rno INTEGER AUTO_INCREMENT ,
      Name VARCHAR(50) ,
       CONSTRAINT tbl_Rno PRIMARY KEY(Rno));
INSERT INTO tbl (Name) VALUES ('value1');
INSERT INTO tbl (Name) VALUES ('value2');
INSERT INTO tbl (Name) VALUES ('value3');

OBTENER LA ÚLTIMA ID ACTUALIZADA
La lógica aquí sugiere que primero actualicemos nuestra última ID actualizada a 0, ya que borra cualquier función realizada previamente, luego actualizamos nuestros valores usando la cláusula/consulta where en SQL y seleccionamos la última ID actualizada usando @ consulta de ID de última actualización


SET @LastUpdateID := 0;
UPDATE tbl SET Name = 'value_new',Rno = (SELECT @LastUpdateID := Rno) 
   WHERE Name = 'value3';
SELECT @LastUpdateID AS LastUpdateID;

OBTENER MÚLTIPLES ID DE ÚLTIMA ACTUALIZACIÓN
La lógica aquí sugiere que actualicemos nuestros valores usando la cláusula/consulta where en SQL y seleccionemos la última ID actualizada usando la consulta @lastupdatedID y para seleccionar varias ID usamos la consulta Concat ya que este código comienza su búsqueda desde abajo obtendría nuestra respuesta en orden descendente como se muestra en el ejemplo.

SET @LastUpdateID = NULL;

UPDATE tbl SET Name = 'changed' WHERE Name 'changed'
AND (SELECT @LastUpdateID := CONCAT_WS(',', Rno, @LastUpdateID));
SELECT @LastUpdateID;

EJEMPLO #1 (Para la última ID actualizada)

Ejemplo n.º 2 (para múltiples ID de última actualización)

Publicación traducida automáticamente

Artículo escrito por NikhilMahipal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *