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 ?
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!