Suchen und löschen Sie doppelte Daten im Internet und behalten Sie die Daten mit der kleinsten ID. Die Methode ist wie folgt:
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 )
Wenn Sie es selbst verwenden, Es wird eine Fehlermeldung angezeigt:
1 delete from tb where id in (SELECT max(id) from tb GROUP BY user HAVING count(user)>1)
[Err] 1093 – Sie können die Zieltabelle „XXX“ für die Aktualisierung nicht in der FROM-Klausel angeben
Ich weiß noch nicht, was die Ursache ist.
Finden Sie dann eine Möglichkeit, die Vorgänge zu verteilen. Filtern Sie zunächst die Daten mit doppelten Benutzern heraus und wählen Sie dann mit max() die größere Zeile aus:
SELECT max(id) from tb GRUPPE NACH Benutzer MIT Anzahl(Benutzer)>1
Dann löschen Sie die redundanten Daten nacheinander entsprechend der erhaltenen Max(ID)
1 delete from tb where id=xx
Das obige ist der detaillierte Inhalt vonMySQL löscht doppelte Daten und behält die kleinste ID bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!