Maison >base de données >tutoriel mysql >Comment récupérer la ligne la plus récente pour un identifiant spécifique dans une table ? 或 Comment puis-je sélectionner uniquement la dernière ligne avec un ID donné dans une table de base de données ?

Comment récupérer la ligne la plus récente pour un identifiant spécifique dans une table ? 或 Comment puis-je sélectionner uniquement la dernière ligne avec un ID donné dans une table de base de données ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-29 05:28:10554parcourir

How to Retrieve the Most Recent Row for a Specific ID in a Table?
或
How Can I Select Only the Latest Row with a Given ID from a Database Table?

Récupérer la ligne la plus récente avec un ID spécifique

Considérons un tableau contenant trois lignes avec le même ID (1) mais des horodatages de connexion différents. L'objectif est de récupérer uniquement la ligne la plus récente parmi elles.

Une approche consiste à utiliser des fonctions d'agrégation et de regroupement. En tirant parti de la fonction MAX() pour trouver l’horodatage de connexion maximal pour chaque ID, vous pouvez identifier efficacement la ligne la plus récente. Regroupez les résultats par colonne ID pour obtenir les horodatages de connexion maximum pour chaque ID unique.

SELECT 
 id, 
 MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id

Pour obtenir l'intégralité de l'enregistrement correspondant, effectuez une INNER JOIN entre la table d'origine et une sous-requête qui renvoie la connexion maximale horodatage pour chaque ID. Liez les deux tables sur la colonne ID et filtrez en fonction de l'horodatage de connexion maximal. Cela donnera la ligne la plus récente pour l'ID spécifié.

Par exemple, pour récupérer la ligne la plus récente pour l'ID=1 :

SELECT 
  tbl.id,
  signin,
  signout
FROM tbl
  INNER JOIN (
    SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id
  ) ms ON tbl.id = ms.id AND signin = maxsign
WHERE tbl.id=1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn