Localisation des enregistrements en double à l'aide de plusieurs champs dans SQL
Identifier les entrées en double sur la base d'une seule colonne est une tâche SQL simple. Par exemple, pour rechercher des e-mails en double dans un tableau users
:
<code class="language-sql">SELECT email, COUNT(email) FROM users GROUP BY email HAVING COUNT(email) > 1;</code>
La complexité augmente lors de l'identification des doublons dans plusieurs champs, tels que l'adresse e-mail et le nom.
Pour identifier les lignes contenant des combinaisons d'adresses e-mail et de nom identiques, utilisez cette requête :
<code class="language-sql">SELECT name, email, COUNT(*) FROM users GROUP BY name, email HAVING COUNT(*) > 1;</code>
Cela regroupe les données à la fois par name
et email
, puis filtre pour afficher uniquement les groupes avec plus d'une entrée, révélant ainsi les doublons.
Comment ça marche :
La clause HAVING
est cruciale ; il filtre les résultats groupés, garantissant que seules les combinaisons de name
et email
apparaissant plus d'une fois sont renvoyées. Un résultat typique ressemblerait à :
<code>| name | email | COUNT(*) | |------|-------------|----------| | Tom | john@example.com | 2 | | Tom | tom@example.com | 2 |</code>
Considération importante :
Les systèmes de bases de données varient dans leur gestion du regroupement de colonnes non agrégées. Certains peuvent nécessiter une inclusion explicite dans la clause GROUP BY
. Si votre système de base de données ne prend pas en charge ce regroupement implicite, vous devrez ajuster la requête en conséquence.
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!