1. ;"."/> 1. ;".">
Maison >base de données >tutoriel mysql >Comment interroger les champs en double dans MySQL
Dans MySQL, vous pouvez utiliser la fonction count() pour interroger des champs répétés. Cette fonction peut renvoyer les résultats des conditions spécifiées. La syntaxe est "SELECT field value COUNT(*) as count FROM table name GROUP BY field value have count>". ;1;
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
Comment interroger les champs en double dans MySQL
Exemple Les données de la table accountinfo sont les suivantes :
Scénario 1 Recherche et déduplication de données en double dans un seul champ
Nous voulons les mêmes données dans le compte à champ unique champ dans le tableau ci-dessus Découvrez.
L'idée est divisée en trois étapes. Brève description :
La première étape
Pour trouver des données en double, la première chose à laquelle on pense est que puisqu'il s'agit d'un doublon, alors le nombre est supérieur à 1, ce qui est considéré un duplicata. C'est la fonction de comptage.
Parce que ce que nous voulons vérifier est un compte à champ unique, nous devons alors regrouper en fonction de la dimension du champ du compte. C'est le groupe par fonction.
Ensuite, la déclaration MySQL que nous avons écrite dans la première étape est :
SELECT account ,COUNT(account) as count FROM accountinfo GROUP BY account;
Les résultats de la requête sont les suivants :
Étape 2
Oui, comme nous le pensions, si le nombre est supérieur à 1, les comptes sont Données A et B.
Alors filtrons un peu et découvrons uniquement le compte des données dont le nombre est supérieur à 1.
La deuxième étape consiste à utiliser les conditions de filtrage. La déclaration mysql écrite est la suivante :
SELECT account FROM accountinfo GROUP BY account HAVING COUNT(account) > 1;
Les résultats de la requête sont les suivants :
La troisième étape
Les données de compte en double A B sont trouvées. , nous avons seulement besoin d'interroger d'autres données avec les comptes A et B ensemble.
Il s'agit d'utiliser les données trouvées dans la deuxième étape comme conditions de sous-requête et d'utiliser la fonction IN.
L'instruction mysql écrite à la troisième étape est :
SELECT * FROM accountinfo WHERE account IN ( SELECT account FROM accountinfo GROUP BY account HAVING COUNT(account) > 1 );
Les résultats de la requête sont les suivants :
Vous pouvez voir que les données en double ont été filtrées par nos soins.
Apprentissage recommandé : Tutoriel vidéo mysql
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!