Maison >base de données >tutoriel mysql >Comment récupérer efficacement les enregistrements les plus récents d'une table MySQL datée ?
Récupération des enregistrements les plus récents d'une table MySQL datée
Pour sélectionner les réponses les plus récentes pour toutes les combinaisons existantes de méthode et d'identifiant dans un Table MySQL avec la structure :
Table: rpc_responses timestamp (date) method (varchar) id (varchar) response (mediumtext) PRIMARY KEY(timestamp,method,id)
Considérez ce qui suit étapes :
Créer une sous-requête pour sélectionner des groupements :
SELECT *, if(@last_method=method,0,1) as new_method_group, @last_method:=method AS t1 FROM rpc_responses ORDER BY method,timestamp DESC
Filtre pour la première ligne de chaque groupe :
WHERE new_method_group=1
Cette condition garantit que seule la la ligne la plus récente pour chaque combinaison de méthode et d'horodatage est sélectionnée.
Sélectionnez le Colonnes souhaitées :
SELECT timestamp, method, id, response FROM t1
Cette requête renverra l'ensemble de résultats souhaité, qui inclut les réponses les plus récentes pour toutes les combinaisons existantes de méthode et d'identifiant. Il est efficace car il évite d'utiliser des jointures et exploite les variables MySQL pour suivre la transition entre les différents groupes de méthodes.
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!