Question

J'utilise MySQL et je suis confronté à un problème. Je veux récupérer la dernière ligne insérée.

<< Voici les détails >>

Vous trouverez ci-dessous la façon dont j'ai créé la table.

create table maxID (myID varchar(4))

J'y ai inséré quatre valeurs comme ci-dessous

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

Quand j'exécute select myID, last_insert_id() as NewID from maxID, Je reçois la sortie comme ci-dessous

myId NewID
A001   0  
A002   0  
A004   0  
A003   0    

Quand j'ai essayé en dessous du code,

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

Je reçois la sortie comme ci-dessous.

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

Cependant, quand j'utilise du code select myId, last_insert_id() as NewID, @rowid:=@rowid+1 as myrow from maxID, (SELECT @rowid:=0) as init where @rowid = 4, J'obtiens une erreur comme Uknown column 'myrow' in where clause

Quand j'utilise where @rowid=4, Je ne reçois aucune donnée dans les tables.

Lien pour jouer avec les données

Noter: Ici, j'utilise 4 juste pour obtenir la sortie souhaitée. Plus tard, je peux obtenir ceci d'une requête (select max(rowid) from maxID)

Veuillez me suggérer ce qui doit faire si je veux voir seulement le dernier enregistrement, c'est-à-dire A003.

Merci pour votre temps.

Mise à jour:

J'ai déjà des millions de données dans mon tableau, donc je ne peux pas ajouter une nouvelle colonne comme suggéré ci-dessous.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top