Maison  >  Questions et réponses  >  le corps du texte

Déduplication MySQL, pourquoi seulement quelques centaines ou dizaines de données en double peuvent-elles être supprimées à chaque fois, alors qu'il existe évidemment des centaines de milliers de données en double ?

Exigence : supprimez les éléments avec le même identifiant principal et le même nom de médicament dans DRUG, et conservez la plus petite ligne de drug_seq

Question : Mysql utilise ces méthodes pour supprimer les doublons, pourquoi ne peut-il supprimer que des centaines ou des dizaines de données en double à chaque fois, comme en les pressant du dentifrice ? Pareil, à chaque fois que je l'exécute, je supprime un peu plus de duplication, et il y a évidemment des centaines de milliers de données en double, mais elles sont toujours incomplètes. SUPPRIMER DE `drug2022` OÙ drug_seq IN (

SELECT drug_seq FROM (

SELECT drug_seq FROM `drug2022` OÙ (primaryid,drugname) IN (SELECT Primaryid,drugname FROM `drug2022` GROUP BY Primaryid,drugname HAVING COUNT(*) > ; 1)

ET

drug_seq NOT IN (SELECT MIN(drug_seq) FROM `drug2022` GROUP BY Primaryid,drugname HAVING COUNT(*) > 1))AS a1);

#Méthode 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 (nom du médicament, identifiant primaire) IN

(SELECT t2.nom du médicament, t2.identifiant primaire

) FROM (SELECT nom du médicament, identifiant primaire FROM `drug2022` GROUP BY nom du médicament, identifiant primaire HAVING COUNT(1) > 1) t2) ; t2. drugname

AND t1.drug_seq < t2. drug_seq;

#Method 4

DELETE

FROM `drug2022`

WHERE drug_seq NOT IN (SELECT * FROM (SELECT MIN(drug_seq) FROM GROUPE `drogue2022` PAR primaire, nom du médicament) t2);

P粉029305743P粉029305743733 Il y a quelques jours745

répondre à tous(0)je répondrai

Pas de réponse
  • Annulerrépondre