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 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
Cette requête fonctionne en effectuant les étapes suivantes :
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!