Maison >base de données >tutoriel mysql >Comment rechercher des enregistrements en double exacts dans plusieurs colonnes dans SQL ?

Comment rechercher des enregistrements en double exacts dans plusieurs colonnes dans SQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-04 11:36:34775parcourir

How to Find Exact Duplicate Records Across Multiple Columns in SQL?

Recherche de valeurs en double dans plusieurs colonnes

Dans votre code SQL, vous cherchez à identifier les enregistrements en double en fonction de critères spécifiques. Pour y parvenir, vous pouvez utiliser une combinaison de regroupement et de filtrage conditionnel.

L'exemple fourni vise à trouver les enregistrements en double qui correspondent à la fois aux colonnes de nom et de ville. Cependant, votre requête d'origine présente un léger problème : elle inclut également des enregistrements dans lesquels seul le nom ou la ville correspond, plutôt que d'exiger une correspondance exacte sur les deux.

Pour résoudre ce problème, vous pouvez modifier la requête comme suit :

SELECT s.id, t.*
FROM [stuff] s
JOIN (
    SELECT name, city, COUNT(*) AS qty
    FROM [stuff]
    GROUP BY name, city
    HAVING COUNT(*) > 1
) t ON s.name = t.name AND s.city = t.city

Cette requête rejoint la table [stuff] avec une sous-requête qui calcule le nombre d'enregistrements en double pour chaque paire unique de valeurs de nom et de ville. En définissant la clause HAVING pour inclure uniquement les groupes dont le nombre est supérieur à 1, vous pouvez limiter les résultats aux lignes qui représentent de véritables doublons.

Le résultat de cette requête doit correspondre au résultat souhaité :

id name city
904834 jim London
904835 jim London
90145 Fred Paris
90132 Fred Paris
90133 Fred Paris

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