Maison >base de données >tutoriel mysql >Déduplication de base de données basée sur des champs spécifiés
Exigences : Supprimez les données en double d'une table utilisateur en fonction du champ nom/e-mail/numéro_carte
Idée : Vous pouvez utiliser la méthode group by pour interroger les données « en double », stocker les données dans une table temporaire, puis stocker les données dans la table temporaire dans la table spécifiée
Malentendus et solution ; : La méthode group by ne peut obtenir que certains champs (champs spécifiés sans duplication) et ne peut pas obtenir les données complètes en une seule fois. Cependant, l'identifiant dans l'ensemble de résultats group by peut être obtenu via la fonction max, puis. toutes les données peuvent être interrogées en fonction de l'identifiant défini.
Idées de testSELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num;
SELECT ID from (SELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num) as T;
SELECT * from users where id in (SELECT ID from (SELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num) as T);
create TEMP TABLE tmp_data as SELECT * from users where id in (SELECT ID from (SELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num) as T);
insert into users_copy1 select * from tmp_data;
select count(*) from users_copy1;
Pour plus d'articles techniques liés à MySQL, veuillez visiter la colonne Tutoriel MySQL 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!