Comment faire pour supprimer le dernier enregistrement(condition) à partir d'une table MySql
J'ai un LoginTime tableau comme ceci:
id | user_id | datetime
1 | 1 | 2011-01-17 18:51:05
2 | 1 | 2011-01-18 18:51:05
3 | 1 | 2011-01-19 18:51:05
4 | 2 | 2011-01-19 18:51:05
Je veux supprimer le dernier enregistrement de user_id=1
. Dernier enregistrement d'un utilisateur peut être reconnu par datetime
.
Comment puis-je le faire avec une seule requête.
OriginalL'auteur Awan | 2011-01-17
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de filtrer la table par user_id (par exemple, LORSQUE user_id=1), puis les trier en temps (par exemple de l'ORDRE PAR datetime) et puis la limite de la requête à un seul élément (par exemple la LIMITE de 1) et que vous supprimez le résultat de cette requête. À la fin youl obtenir requête comme ceci:
L'un d'eux sera supprimé... peut ou ne peut pas faire de sens selon le scénario.
Dans ce cas, j'avais l'habitude de l'utilisation de l'id au lieu d'un timestamp de déterminer la plus récente. Si l'id est réglé sur auto-incrément, la dernière entrée dans la base de données aura toujours les id les plus élevés (par exemple SUPPRIMER DE LoginTime OÙ user_id=1 ORDER BY id DESC LIMIT 1)
Merci. il est de travail. Il est difficile d'avoir le même datetime pour un utilisateur dans ce scénario.
OriginalL'auteur Ivan
Un grand Merci, j'ai corrigé.
Merci pour votre réponse. Il est à la recherche complexe mais utile. Je l'ai considéré comme simple.
OriginalL'auteur nan
OriginalL'auteur sarath