Maison > base de données > tutoriel mysql > Comment récupérer efficacement la dernière ligne pour un identifiant donné en fonction des horodatages ?

Comment récupérer efficacement la dernière ligne pour un identifiant donné en fonction des horodatages ?

Barbara Streisand
Libérer: 2025-01-01 10:37:16
original
545 Les gens l'ont consulté

How to Efficiently Retrieve the Latest Row for a Given ID Based on Timestamps?

Récupération de la dernière ligne pour un ID spécifié

Dans une table contenant plusieurs lignes avec le même ID, comment pouvez-vous extraire efficacement uniquement les ligne la plus récente basée sur les horodatages ? Prenons l'exemple de tableau :

| id | signin              | signout |
+----+---------------------+---------+
|  1 | 2011-12-12 09:27:24 | NULL    |
|  1 | 2011-12-13 09:27:31 | NULL    |
|  1 | 2011-12-14 09:27:34 | NULL    |
|  2 | 2011-12-14 09:28:21 | NULL    |
+----+---------------------+---------+
Copier après la connexion

Pour y parvenir, vous pouvez utiliser des fonctions d'agrégation et des sous-requêtes.

Utilisation d'Aggregate MAX()

Le La fonction agrégée MAX() peut être utilisée pour déterminer le dernier horodatage de connexion pour chaque ID. En regroupant les résultats par colonne d'identifiant, vous pouvez identifier l'horodatage de connexion maximal pour chaque identifiant unique.

SELECT 
 id, 
 MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id
Copier après la connexion

Récupération de la ligne complète

Pour récupérer l'intégralité ligne correspondant à la connexion la plus récente pour un ID spécifique, utilisez un INNER JOIN sur une sous-requête qui renvoie l'horodatage de connexion maximum par ID.

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
Copier après la connexion

Cette requête renverra l'enregistrement complet le plus récent avec>

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal