Maison  >  Article  >  base de données  >  Comment supprimer les données en double dans MySQL

Comment supprimer les données en double dans MySQL

(*-*)浩
(*-*)浩original
2019-05-07 16:22:5212746parcourir

La vérification des doublons est un besoin que nous rencontrons souvent dans notre travail. L'article suivant vous présente principalement les informations pertinentes sur l'interrogation des données en double par MySQL (suppression des données en double et conservation de celle avec le plus petit ID comme donnée unique). article L'exemple de code est présenté de manière très détaillée et a une certaine valeur de référence pour les études ou le travail de chacun.

Cours recommandé : Tutoriel MySQL.

Comment supprimer les données en double dans MySQL

Récemment, je travaille sur une fonction d'importation de données par lots dans la base de données MySQL. À partir de l'importation par lots, nous pouvons savoir que ces données ne seront pas jugées à plusieurs reprises avant d'être insérées. dans la base de données. Par conséquent, ce n'est qu'une fois toutes les données importées qu'une instruction peut être exécutée pour les supprimer afin de garantir l'unicité des données.

Pas grand chose à dire ci-dessous, jetons un œil à l'introduction détaillée

La structure du tableau est la suivante :

Tableau Nom : marque

Comment supprimer les données en double dans MySQL

Opération

Quelles sont les requêtes de données répétées utilisant des instructions SQL :


SELECT * from brand WHERE brandName IN(
select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1 #条件是数量大于1的重复数据
)

Utilisez SQL pour supprimer les données en double redondantes et conserver la donnée unique avec le plus petit ID :

Remarque :

Faux SQL :DELETE FROM brand WHERE brandName IN (sélectionnez brandName de la marque GROUP BY brandName HAVING COUNT(brandName)>1)
AND Id NOT IN (sélectionnez MIN(Id) de la marque GROUP BY brandName HAVING COUNT(brandName)> 1)

Conseil : Vous ne pouvez pas spécifier la « marque » de la table cible pour la mise à jour dans la clause FROM. Vous ne pouvez pas spécifier la « marque » de la table cible pour la mise à jour dans la clause FROM

Le La raison est la suivante : les données directement étudiées ne peuvent pas être utilisées comme condition de suppression de données. Nous devons d'abord créer une table temporaire pour les données détectées, puis utiliser la table temporaire comme condition pour la fonction de suppression

正确SQL写法:
 DELETE FROM brand WHERE brandName IN 
 (SELECT brandName FROM (SELECT brandName FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) e)
 AND Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) t)
#查询显示重复的数据都是显示最前面的几条,因此不需要查询是否最小值

Les résultats sont les suivants :

Comment supprimer les données en double dans MySQLRésumé :

Beaucoup de choses doivent à faire soi-même Il est exploré étape par étape. Bien entendu, les suggestions sur Internet sont également des références et des ressources très précieuses. Quel que soit le développement que nous effectuons, nous devons comprendre son principe de fonctionnement afin de mieux le maîtriser.


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