一条sql语句数据库去重

来源:互联网 发布:查找质数的算法 编辑:程序博客网 时间:2024/05/14 06:09
记得两年前我的老师给我出了一道题目:
假如有一张users表,里面有user_id,user_name两个字段,用一条sql语句去掉数据库里的userName重复的记录.
当时想了很久,都没想出答案.今天突然想起这个问题,想到了两种实现.

1.delete from users a  where a.user_id = (select max(b.user_id) from users b where a.user_name=b.user_name);
这一种自联接,效率低一点.

2.delete from users where user_id not in(select max(user_id) from users group by user_name having count(user_name)>=1);
这一种先分组,效率高一些.

在此作下符号,希望对同行的朋友们有所启示.


摘自:http://www.blogjava.net/hwpok/archive/2008/07/25/217448.html

原创粉丝点击