suchen

Heim  >  Fragen und Antworten  >  Hauptteil

MySQL-Deduplizierung, warum können jedes Mal nur ein paar Hundert oder Dutzende doppelter Daten entfernt werden, wenn es offensichtlich Hunderttausende doppelter Daten gibt?

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);

P粉029305743P粉029305743820 Tage vor815

Antworte allen(0)Ich werde antworten

Keine Antwort
  • StornierenAntwort