Maison >base de données >tutoriel mysql >Comment supprimer les enregistrements en double dans la base de données MySQL ?

Comment supprimer les enregistrements en double dans la base de données MySQL ?

青灯夜游
青灯夜游original
2020-09-03 13:18:5612766parcourir

Étapes MySQL pour supprimer les enregistrements en double dans la base de données : comptez d'abord les données en double ; puis utilisez l'instruction "SELECT DISTINCT" pour filtrer les données en double ; enfin, ajoutez INDEX et PRIMAY KEY à la table de données pour supprimer les enregistrements en double dans la base de données ; tableau .

Comment supprimer les enregistrements en double dans la base de données MySQL ?

Des données en double peuvent exister dans les tables de données MySQL classiques. Dans certains cas, les données en double sont autorisées, et dans d'autres, ce n'est pas le cas pour le moment. Si vous devez rechercher et supprimer ces données en double, voici la méthode de traitement spécifique !

Recommandations d'apprentissage associées : Tutoriel MySQL (vidéo)

Méthode 1 : Empêcher l'apparition de données en double dans le tableau

Lorsqu'aucune donnée n'est ajoutée à la table, vous pouvez définir le champ spécifié dans la table de données MySQL en tant qu'index PRIMARY KEY (clé primaire) ou UNIQUE (***) pour garantir l'intégrité des données.

Par exemple, le numéro d'étudiant no ne peut pas être répété dans le tableau d'informations sur l'étudiant. Le numéro d'étudiant no doit être défini comme clé primaire et la valeur par défaut ne peut pas être NULL.

CREATE TABLE student 
( 
no CHAR(12) NOT NULL, 
name CHAR(20), 
sex CHAR(10), 
PRIMARY KEY (no) 
);

Méthode 2 : filtrer et supprimer les valeurs en double

Pour les données d'origine dans la table de données, si vous souhaitez supprimer les données en double, vous devez passer par une recherche de données en double, des étapes de filtrage et de suppression.

1. Compter les données en double

mysql> SELECT COUNT(*) as repetitions,no 
-> FROM student 
-> GROUP BY no 
-> HAVING repetitions > 1;

L'instruction de requête ci-dessus renverra le nombre d'enregistrements en double dans la table des étudiants.

2. Filtrer les données en double

Si vous avez besoin de lire des données uniques, vous pouvez utiliser le mot-clé DISTINCT dans l'instruction SELECT pour filtrer les données en double.

mysql> SELECT DISTINCT no 
-> FROM student;

Vous pouvez également utiliser GROUP BY pour lire les données non dupliquées dans la table de données

mysql> SELECT no 
-> FROM student 
-> GROUP BY (no);

3 Supprimer les données en double

Supprimer les données de la table de données Pour les données en double, vous pouvez utiliser l'instruction SQL suivante :

mysql> CREATE TABLE tmp SELECT no, name, sex FROM student GROUP BY (no, sex); 
mysql> DROP TABLE student; 
mysql> ALTER TABLE tmp RENAME TO student;

Vous pouvez également ajouter INDEX (index) et PRIMAY KEY (clé primaire) à la table de données pour supprimer les enregistrements en double dans la table. La méthode est la suivante :

mysql> ALTER IGNORE TABLE student 
-> ADD PRIMARY KEY (no);

Cet article provient du canal du site Web php chinois Tutoriel graphique mysql, bienvenue pour apprendre !

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