需求:刪除DRUG中同primaryid和drugname的項目,並保留drug_seq最小的一行
問題:mysql用這幾種方法去重,為什麼每次只能去掉幾百或幾十條重複數據,跟擠牙膏一樣,每執行一下,去重一點,明明有幾十萬條重複數據,幾種方式都試了,都是一樣的去重不徹底
#方法一:
DELETE FROM `drug2022` WHERE drug_seq IN(
SELECT drug_seq FROM (
SELECT drug_seq FROM `drug2022` WHERE (primaryid,drugname) INid. `drug2022` GROUP BY primaryid,drugname HAVING COUNT(*) > 1)
AND
drug_seq NOT IN (SELECT MIN(drug_seq) FROM 『 (*) > 1))AS a1);
#方法二:
DELETE
##FROM `drug2022` WHERE drug_seq NOT IN ( (SELECT t1.min_drug_seq FROM (SELECT MIN(drug_seq) AS min_drug_seq FROM `drug2022`drugsq. t1)) AND (drugname, primaryid) IN (SELECT t2.drugname, t2.primaryid FROM (SELECT drugname, p`002 , primaryid HAVING COUNT(1) > 1) t2); #方法三: DELETE t1 #FROM `drug2022` t1, `drug2022` t2 WHERE t1.primaryid = t2.primaryid AND t1.drugname = t2.drugname # AND t1.d se < t2.drug_seq; #方法四 DELETE FROM `drug2022` WHERE drug_seq NOT IN (SELECT * FROM (SELECT MIN(drug_seq) FROM `drug2022` GROUP BY primaryid, drugname) t2);