Heim >Datenbank >MySQL-Tutorial >So löschen Sie doppelte Daten in SQL

So löschen Sie doppelte Daten in SQL

醉折花枝作酒筹
醉折花枝作酒筹Original
2021-05-11 17:10:4838868Durchsuche

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)“.

So löschen Sie doppelte Daten in SQL

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn