Mot-clé MySQL DISTINCT
Le mot-clé DISTINCT de MySQL est utilisé pour supprimer les enregistrements en double des résultats d'une requête SELECT. Il garantit que la requête ne renvoie que des valeurs uniques dans les colonnes spécifiées.
Utilisation
Le mot-clé DISTINCT est utilisé lorsque vous voulez vous assurer que les résultats de la requête ne contiennent que des entrées uniques, en éliminant les lignes dupliquées. Il est placé directement après le mot-clé SELECT.
SELECT DISTINCT column1, column2, ...
FROM table_name;
Dans cette syntaxe, DISTINCT est appliqué à la combinaison de colonne(s) spécifiée(s), garantissant que seules les combinaisons uniques de valeurs sont renvoyées.
Exemples
1. Utilisation de base
SELECT DISTINCT country
FROM customers;
Cette requête permet de récupérer une liste de pays uniques dans le tableau customers, en éliminant les doublons.
2. Colonnes multiples
SELECT DISTINCT first_name, last_name
FROM employees;
Dans cet exemple, le mot-clé DISTINCT garantit que la combinaison de first_name et last_name est unique dans les résultats, qui peuvent encore inclure des lignes avec le même prénom mais des noms de famille différents, et vice versa.
3. Combiné avec la clause WHERE
SELECT DISTINCT category
FROM products
WHERE price > 50;
Ici, le mot-clé DISTINCT est utilisé avec une clause WHERE pour trouver des catégories de produits uniques dont le prix est supérieur à 50, ce qui améliore à la fois la spécificité et l'unicité des résultats.
4. Combiné avec ORDER BY
SELECT DISTINCT department
FROM employees
ORDER BY department;
Cet exemple démontre l'utilisation de DISTINCT avec ORDER BY pour récupérer des noms de départements uniques et maintenir un ordre spécifique dans les résultats.
Conseils et bonnes pratiques
- Utilisez DISTINCT avec précaution. Bien que
DISTINCTsupprime les doublons, cela peut avoir un impact sur les performances, en particulier dans les grands ensembles de données. - Appliquer aux colonnes nécessaires. N'utilisez
DISTINCTque pour les colonnes dont l'unicité est requise afin d'éviter toute surcharge inutile. - Mélanger avec
ORDER BY. Si nécessaire, combinezDISTINCTavecORDER BYpour maintenir un ordre spécifique dans les résultats. - Faites attention aux NULL.
DISTINCTtraite les valeursNULLcomme étant égales, de sorte qu'un seulNULLsera renvoyé pour chaque combinaison de colonnes, ce qui peut affecter les résultats si plusieursNULLsont présents dans plusieurs colonnes.