Si vous n'avez pas déjà un index sur number
vous devriez en ajouter un -
CREATE INDEX table_number ON table (number);
MISE À JOUR Essayez ceci -
UPDATE inv t1
INNER JOIN inv t2
ON t1.name = t2.name
AND t1.id <> t2.id
SET t1.flag_qty = 1;
Vous pouvez créer votre table avec uniquement les doublons en sélectionnant ces données directement dans une autre table au lieu de faire d'abord cette mise à jour de l'indicateur.
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
Si vous pouvez expliquer la logique pour laquelle les lignes sont supprimées de inv
tableau, il se peut que l'ensemble du processus puisse être effectué en une seule étape.