Heim  >  Artikel  >  Datenbank  >  Erklären Sie, wie MySQL doppelte Daten löscht

Erklären Sie, wie MySQL doppelte Daten löscht

藏色散人
藏色散人nach vorne
2022-01-11 16:02:0610506Durchsuche

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 nicht

SELECT 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen