Cet article vous présente principalement les méthodes d'interrogation et de suppression des enregistrements en double dans MySQL, et le partage pour votre référence et votre étude. Jetons un coup d'œil à l'introduction détaillée.
Trouver tous les enregistrements avec des titres en double :
select title,count(*) as count from user_table group by title having count>1;
1. Rechercher les enregistrements en double
1. Rechercher tous les enregistrements en double
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC
2. Filtrer les enregistrements en double (en afficher un seul)
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC
Remarque : l'enregistrement avec le plus grand identifiant est affiché ici
2. Supprimer les enregistrements en double
1 Supprimer tous les enregistrements en double (À utiliser avec prudence)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
Remarque : Conservez le dossier avec le plus grand identifiant ici
3. Exemple
1. Recherchez les enregistrements en double redondants dans la table. Les enregistrements en double sont jugés en fonction d'un seul champ (peopleId)Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
4. Le supplément
contient plus de deux enregistrements en double. L'un est un enregistrement complètement en double, c'est-à-dire un enregistrement avec tous les champs répétés, et l'autre est un enregistrement partiel avec des champs clés répétés, tels que des champs Nom répétés, mais d'autres champs ne peuvent pas être répétés ou peuvent être ignorés. 1. Le premier type de duplication est relativement facile à résoudre. Utilisezselect * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
select distinct * from tableName
select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp
Résumé
Ce qui précède est l'intégralité du contenu de cet article. peut apporter une aide aux études ou au travail de chacunApprentissage recommandé :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!