Dieser Artikel stellt Ihnen hauptsächlich die Methoden zum Abfragen und Löschen doppelter Datensätze in MySQL vor und stellt sie Ihnen als Referenz und zum Studium zur Verfügung. Werfen wir einen Blick auf die detaillierte Einführung.
Alle Datensätze mit doppelten Titeln finden:
select title,count(*) as count from user_table group by title having count>1;
1. Doppelte Datensätze suchen
1. Alle doppelten Datensätze finden
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC
2. Duplikate Datensätze filtern (nur einen anzeigen)
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC
Hinweis: Der Datensatz mit der größten ID ist hier angezeigt
2. Löschen Sie doppelte Datensätze
1. Löschen Sie alle doppelten Datensätze (mit Vorsicht verwenden)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
2, behalten Sie einen Datensatz (das sollte das sein, was die meisten Leute brauchen^_^)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
Hinweis: Bewahren Sie den Datensatz mit der größten ID hier auf
3. Beispiel
1. Die doppelten Datensätze werden anhand eines einzelnen Felds (peopleId) beurteilt.
Löschen Sie die Redundante doppelte Datensätze in der Tabelle, doppelte Datensätze werden anhand eines einzelnen Felds (peopleId) beurteilt und nur der Datensatz mit der kleinsten Zeilen-ID bleibt übrigDelete 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)
4. Ergänzung
hat mehr als zwei doppelte Datensätze. Einer ist ein vollständig doppelter Datensatz , das heißt, ein Datensatz, bei dem alle Felder wiederholt werden, und der andere ist ein teilweiser Datensatz mit wiederholten Schlüsselfeldern, wie z. B. wiederholten Namensfeldern, aber andere Felder dürfen nicht wiederholt werden oder können ignoriert werden. 1. Die erste Art der Duplizierung ist relativ einfach zu lösen. Verwenden Sierrree
, um eine Ergebnismenge ohne doppelte Datensätze zu erhalten. Wenn die Tabelle doppelte Datensätze löschen muss (wobei 1 doppelter Datensatz erhalten bleibt), können Sie ihn wie folgt löschendelete 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 * 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)
Zusammenfassung
Das Obige ist der gesamte Inhalt dieses Artikels kann jedem beim Lernen oder bei der Arbeit helfenEmpfohlenes Lernen:Das obige ist der detaillierte Inhalt vonEine vollständige Liste der Methoden zum Abfragen und Löschen doppelter Datensätze in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!