In diesem Artikel erfahren Sie, wie Sie doppelte Daten in MySQL löschen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
sku entspricht, sollte eine sku_id haben, die einem eindeutigen Gewichtsdatenelement entspricht. Aufgrund eines Programmfehlers werden dieselben redundanten Daten angezeigt. Behalten Sie nur eines und löschen Sie die anderen.
Feld | Beschreibung |
---|---|
id | Selbstinkrementieren |
sku_id | sku_id. Identifikation |
Gewicht | Gewicht |
Angenommener Tabellenname: Gewicht
Fragen Sie die Liste mit doppelten Daten ab.
SELECT sku_id,COUNT(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1
Fragen Sie jede kleinste ID in den doppelten Daten ab ID, die doppelte Datendaten entfernt
SELECT min(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1
Der Grund ist: Beim Löschen dieser Tabelle wird diese Tabelle gleichzeitig abgefragt, und während diese Tabelle abgefragt wird, wird diese Tabelle gleichzeitig gelöscht, was als a verstanden werden kann Deadlock. MySQL unterstützt diesen Vorgang des Löschens und Abfragens derselben Tabelle nichtSELECT id,sku_id FROM weight WHERE sku_id IN(
SELECT sku_id FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN(
SELECT MIN(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)
Die Lösung lautet wie folgt: Fragen Sie die zu löschenden Daten als Drittanbietertabelle ab und filtern und löschen Sie sie dann.
DELETE FROM weight WHERE sku_id IN( SELECT sku_id FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN( SELECT MIN(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)
Das Update funktioniert ebenfalls nach dem gleichen Prinzip wie oben. Empfohlenes Lernen: „
MySQL-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonErklären Sie, wie MySQL doppelte Daten löscht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!