Mysql开发技巧之删除重复数据

时间:2023-03-08 20:48:48

Mysql利用联表查询和分组来删除重复数据

//删除表中重复的id,保留最大的id
mysql> select * from user;
+----+------+
| id | name |
+----+------+
| | a |
| | b |
| | c |
| | d |
| | a |
| | a |
| | c |
| | d |
+----+------+
rows in set (0.08 sec)
mysql> delete a from user a left join (select max(id) as id, name from user group by name having(count(id)) > )  b on a
.name = b.name where a.id < b.id;
Query OK, rows affected (0.13 sec)

//删除重复数据成功
mysql> select * from user;
+----+------+
| id | name |
+----+------+
| | b |
| | a |
| | c |
| | d |
+----+------+