Maison > base de données > tutoriel mysql > Comment récupérer efficacement les enregistrements les plus récents d'une table MySQL datée ?

Comment récupérer efficacement les enregistrements les plus récents d'une table MySQL datée ?

Mary-Kate Olsen
Libérer: 2024-12-24 09:43:14
original
159 Les gens l'ont consulté

How to Efficiently Retrieve the Most Recent Records from a Dated MySQL Table?

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

Considérez ce qui suit étapes :

  1. 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
    Copier après la connexion
    • La variable @last_method est initialisée avec une chaîne vide.
    • L'instruction if() crée une colonne new_method_group qui indique le début d'un nouveau groupe de lignes avec la même valeur de méthode.
  2. Filtre pour la première ligne de chaque groupe :

    WHERE new_method_group=1
    Copier après la connexion

    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.

  3. Sélectionnez le Colonnes souhaitées :

    SELECT timestamp, method, id, response
    FROM t1
    Copier après la connexion

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!

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