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
DISTINCT
supprime 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
DISTINCT
que pour les colonnes dont l'unicité est requise afin d'éviter toute surcharge inutile. - Mélanger avec
ORDER BY
. Si nécessaire, combinezDISTINCT
avecORDER BY
pour maintenir un ordre spécifique dans les résultats. - Faites attention aux NULL.
DISTINCT
traite les valeursNULL
comme étant égales, de sorte qu'un seulNULL
sera renvoyé pour chaque combinaison de colonnes, ce qui peut affecter les résultats si plusieursNULL
sont présents dans plusieurs colonnes.