Obtenir le dernier record de MySQL
-
30-10-2019 - |
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