Wenn Sie noch keinen Index für number
haben Sie sollten ein -
CREATE INDEX table_number ON table (number);
AKTUALISIEREN Versuchen Sie dies -
UPDATE inv t1
INNER JOIN inv t2
ON t1.name = t2.name
AND t1.id <> t2.id
SET t1.flag_qty = 1;
Sie können Ihre Tabelle nur mit den Duplikaten erstellen, indem Sie diese Daten direkt in einer anderen Tabelle auswählen, anstatt diese Markierungsaktualisierung zuerst durchzuführen.
INSERT INTO duplicate_invs
SELECT DISTINCT inv1.*
FROM inv AS inv1
INNER JOIN inv AS inv2
ON inv1.name = inv2.name
AND inv1.id < inv2.id
Wenn Sie die Logik erklären können, nach der Zeilen aus inv
gelöscht werden Tabelle kann es sein, dass der gesamte Prozess in einem Schritt erledigt werden kann.