網上有些做法是這樣的:
delete from table_name where id not in (select min_id from (select min(id) as min_id from table_name group by duplicate_column) b);
發現這樣在本地跑是可行的,20w+數據大概花了8s,但是同樣的數據在linux上跑會出現CPU佔用100%,而且還一直無法執行完畢。暫時不知道什麼原因。
用另一種做法
sql語句:
ALTER IGNORE TABLE tableName
ADD UNIQUE INDEX (`column`);
該語句會幫你把該字段的重複數據刪除。
參考:
https://stackoverflow.com/questions/3311903/remove-duplicate-rows-in-mysql