这个问题本来很简单,但经常见有人问。采用过时的删除方法可能非常的慢,816以后版本可以采用新方法了。
useraccount表,主键为userid,有一个字段为手机号码mobilephone
假如重复的记录的比例不是很大
delete useraccount where rowid in (
select rid from
(select rowid rid,row_number() over(partition by mobilephone order by userid desc) rn from useraccount )
where rn 1) ;
我是经常用这样的方法删除数据的,上百万记录删除几万条速度还是比较快的。当然假如大量都是重复的,还是干脆做temp表吧 :)