Heim > Fragen und Antworten > Hauptteil
Anforderung: Löschen Sie die Elemente mit derselben Primär-ID und demselben Medikamentennamen in DRUG und behalten Sie die kleinste Zeile von Drug_seq bei.
Frage: MySQL verwendet diese Methoden, um Duplikate zu entfernen. Warum kann es jedes Mal nur Hunderte oder Dutzende doppelter Daten entfernen, z. B. durch Squeezing? Zahnpasta? Das Gleiche, jedes Mal, wenn ich es ausführe, werde ich einige Hunderttausende doppelter Daten entfernen, aber die Deduplizierung ist immer noch unvollständig LÖSCHEN AUS „drug2022“ WHERE „drug_seq IN“ (
SELECT „drug_seq FROM“ (
SELECT „drug_seq FROM „drug2022“ ; 1)
AND
Drug_seq NOT IN (SELECT MIN(drug_seq) FROM `drug2022` GROUP BY Primaryid,drugname HAVING COUNT(*) > 1))AS a1);
#Methode 2:
DELETE
FROM „drug2022“
WHERE Drug_seq NOT IN (
) (SELECT t1.min_drug_seq
) FROM (SELECT MIN(drug_seq) AS min_drug_seq FROM `drug2022` GROUP BY Drugname, Primaryid. HAVING COUNT(1) > 1) t1))
AND (Drugname, Primaryid) IN
(SELECT t2.drugname, t2.primaryid
) FROM (SELECT Drugname, Primaryid FROM `drug2022` GROUP BY Drugname, Primaryid HAVING COUNT(1) > 1) t2) t1.drugname = t2. Drugname
AND t1.drug_seq < t2. Drug_seq;
#Methode 4
DELETE
FROM `drug2022`
WHERE Drug_seq NOT IN (SELECT * FROM (SELECT MIN(drug_se q) AUS DER GRUPPE „drug2022“. BY Primaryid, Medikamentenname) t2);