Heim >Datenbank >MySQL-Tutorial >So löschen Sie doppelte Daten in SQL
In SQL können Sie die SELECT-Anweisung verwenden, um doppelte Daten zu löschen. Die Syntax lautet: „select * from field where field id in (select field id from field group by field with count (field id) > 1)“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, MySQL-Version 8.0, Dell G3-Computer.
Verwenden Sie SQL-Anweisungen, um Duplikate zu löschen und nur einen zu behalten.
Unter Tausenden von Datensätzen gibt es einige identische Datensätze.
Suchen Sie nach doppelten Datensätzen in der Tabelle basierend auf einem einzelnen Feld (peopleId)
select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
Erweiterung:
Löschen Sie redundante doppelte Datensätze in der Tabelle. Doppelte Datensätze werden basierend auf einem einzelnen Feld (peopleId) beurteilt, sodass nur der Datensatz mit der kleinsten Zeilen-ID übrig bleibt
delete from people where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1) and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>1)
Finden die redundanten doppelten Datensätze (mehrere Felder) in der Tabelle
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
Löschen Sie die redundanten doppelten Datensätze (mehrere Felder) in der Tabelle und lassen Sie nur den Datensatz mit der kleinsten Zeilen-ID übrig
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)
Suchen Sie die redundanten doppelten Datensätze (mehrere Felder) in der Tabelle , enthält nicht den Datensatz mit der kleinsten Zeilen-ID
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)
Entfernen Sie die erste Ziffer links von einem Feld:
update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'
Entfernen Sie die erste Ziffer rechts von einem Feld:
update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'
Falsch Löschen Sie redundante doppelte Datensätze (mehrere Felder) in der Tabelle, Enthält nicht den Datensatz mit der kleinsten Zeilen-ID
update vitae set ispass=-1where peopleId in (select peopleId from vitae group by peopleId
Verwandte Empfehlungen: „MySQL-Tutorial“
Das obige ist der detaillierte Inhalt vonSo löschen Sie doppelte Daten in SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!