Maison  >  Article  >  base de données  >  Comment sélectionner tous les champs avec DISTINCT dans MySQL ?

Comment sélectionner tous les champs avec DISTINCT dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 08:31:30541parcourir

How to Select All Fields with DISTINCT in MySQL?

Impossible de sélectionner tous les champs avec DISTINCT dans la requête MySQL

Lorsqu'ils tentent d'éliminer les lignes en double à l'aide du mot-clé DISTINCT, les utilisateurs peuvent rencontrer des limitations dans en sélectionnant tous les champs dans leurs requêtes MySQL. Cet article aborde le problème et propose une solution.

Contexte

Le mot clé DISTINCT identifie et renvoie uniquement les lignes uniques dans un ensemble de résultats, en fonction de la ou des colonnes spécifiées. ). Cependant, cela peut entraîner des erreurs lorsqu'il est combiné avec une instruction select-all (*).

Considérez la requête suivante, qui sélectionne uniquement la colonne ticket_id dans la table temp_tickets et la classe par ticket_id :

mysql_query("SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")

Cette requête s'exécutera avec succès et renverra des valeurs ticket_id distinctes. Cependant, la requête suivante, qui tente de sélectionner tous les champs et d'utiliser DISTINCT :

mysql_query("SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")

entraînera une erreur. En effet, DISTINCT ne peut être appliqué qu'à une seule colonne.

Solution

Pour sélectionner tous les champs et utiliser DISTINCT pour éliminer les doublons, modifiez la requête comme suit :

SELECT ticket_id, <other_field>, <other_field> FROM temp_tickets GROUP BY ticket_id ORDER BY ticket_id

Dans cette requête, la clause GROUP BY est utilisée en conjonction avec DISTINCT pour regrouper les résultats par la colonne ticket_id. Pour chaque ticket_id unique, une seule ligne sera renvoyée, contenant les dernières valeurs pour les champs spécifiés.

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!

Déclaration:
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