Maison >base de données >tutoriel mysql >Comment rechercher et récupérer des lignes avec des valeurs de colonne non uniques dans SQL ?

Comment rechercher et récupérer des lignes avec des valeurs de colonne non uniques dans SQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 17:25:09861parcourir

How to Find and Retrieve Rows with Non-Unique Column Values in SQL?

Interrogation de lignes avec des valeurs de colonne non distinctes

En SQL, une tâche courante consiste à récupérer des lignes où la valeur d'une colonne spécifique est pas distinct. Cela peut être utile pour identifier les données en double ou détecter des anomalies.

Exemple de scénario

Considérez un tableau nommé Clients contenant les données suivantes :

CustomerName EmailAddress
Aaron [email protected]
Christy [email protected]
Jason [email protected]
Eric [email protected]
John [email protected]

Pour récupérer toutes les lignes où la colonne EmailAddress n'est pas distincte, nous pouvons utiliser la commande suivante requête :

SELECT EmailAddress, CustomerName
FROM Customers
WHERE EmailAddress IN
  (SELECT EmailAddress FROM Customers GROUP BY EmailAddress HAVING COUNT(*) > 1)

Explication

La clause IN filtre les valeurs EmailAddress trouvées dans la sous-requête. La sous-requête regroupe toutes les valeurs EmailAddress et compte les occurrences de chaque valeur. La clause HAVING sélectionne ensuite uniquement les groupes avec plus d'une occurrence (c'est-à-dire des valeurs non distinctes).

En utilisant cette approche, nous identifions et renvoyons efficacement les lignes où la colonne EmailAddress n'est pas distincte. Cette méthode est nettement plus rapide que l'utilisation de l'opérateur EXISTS dans la plupart des cas.

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