Maison > base de données > tutoriel mysql > Comment sélectionner les 3 enregistrements les plus récents avec des valeurs uniques dans une colonne spécifique ?

Comment sélectionner les 3 enregistrements les plus récents avec des valeurs uniques dans une colonne spécifique ?

Susan Sarandon
Libérer: 2024-12-02 12:06:18
original
638 Les gens l'ont consulté

How to Select the 3 Most Recent Records with Unique Values in a Specific Column?

Comment sélectionner les 3 enregistrements les plus récents avec des valeurs distinctes pour une colonne spécifiée

La sélection des enregistrements les plus récents pour une table donnée est une opération courante dans les bases de données. Cependant, cela peut devenir plus complexe lorsque vous souhaitez garantir que les valeurs d'une colonne spécifique sont distinctes, éliminant ainsi les doublons. Cette tâche nécessite une approche plus nuancée.

Dans le scénario donné, un utilisateur tente de sélectionner les trois enregistrements les plus récents dans une table où les valeurs de la colonne otheridentifier sont distinctes. La tentative initiale, en utilisant SELECT * FROM table GROUP BY (otheridentifier) ​​ORDER BY time DESC LIMIT 3, ne parvient pas à produire le résultat souhaité car le regroupement a priorité sur l'ordre dans l'instruction SQL.

Pour surmonter cette limitation, un une requête plus élaborée est nécessaire :

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` AS `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3
Copier après la connexion

Cette requête fonctionne en effectuant les étapes suivantes :

  1. Elle utilise un sous-requête pour obtenir l'identifiant de l'enregistrement le plus récent pour chaque autre valeur d'identifiant distincte.
  2. La requête principale restreint ensuite la sélection aux enregistrements avec les valeurs d'identifiant correspondantes.
  3. Enfin, les résultats sont classés dans ordre décroissant de temps et limité aux trois premiers enregistrements.

Grâce à cette approche, l'utilisateur peut sélectionner efficacement les trois enregistrements les plus récents avec des valeurs distinctes pour le colonne otheridentifier, donnant le résultat souhaité.

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