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

So löschen Sie doppelte Daten in SQL

醉折花枝作酒筹
Freigeben: 2022-01-12 15:09:01
Original
38948 Leute haben es durchsucht

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

Entfernen Sie die erste Ziffer links von einem Feld:

update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'
Nach dem Login kopieren

Entfernen Sie die erste Ziffer rechts von einem Feld:

update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage