mysql删除重复行

MYSQL用以下词句就可以:
delete t_user from t_user , (select id from t_user group by username having count(*)>1 ) as t2 where t_user.id=t2.id;

mysql> select * from t_user; 
+----+----------+------+ 
| id | username | age | 
+----+----------+------+ 
| 1 | aaa      |   20 | 
| 2 | aaa      |   20 | 
| 3 | bbb      |   20 | 
| 4 | bbb      |   20 | 
| 5 | ccc      |   20 | 
| 6 | ccc      |   20 | 
| 7 | ddd      |   20 | 
| 8 | ddd      |   20 | 
+----+----------+------+ 

mysql> delete t_user from t_user , (select id from t_user group by username having count(*)>1 ) as t2 where t_user.id=t2.id; 
Query OK, 4 rows affected (0.05 sec) 


mysql> select * from t_user; 
+----+----------+------+ 
| id | username | age | 
+----+----------+------+ 
| 2 | aaa      |   20 | 
| 4 | bbb      |   20 | 
| 6 | ccc      |   20 | 
| 8 | ddd      |   20 | 
+----+----------+------+ 

猜你喜欢

转载自jis117.iteye.com/blog/1961427