在MySQL的表记录下,我有以下这些:

SELECT * FROM dbo.online;
+-------+
| Id    |
+-------+
| 10128 |
| 10240 |
|  6576 |
|    32 |
| 10240 |
| 10128 |
| 10128 |
| 12352 |
+-------+
8 rows in set (0.00 sec)


如何做到:

 SELECT * FROM dbo.online;
+-------+
| Id    |
+-------+
| 10128 |
| 10240 |
|  6576 |
|    32 |
| 12352 |
+-------+
8 rows in set (0.00 sec)


换句话说,我想做的是,使用DELETE命令代替SELECT * FROM dbo.online GROUP BY id ..那么,有什么想法吗?

最佳答案

使用distinct将数据复制到备份表中,从而消除重复

create table backUp_online as
SELECT distinct *
FROM online;


清除源表

truncate table online


将数据从备份复制到源表,没有重复项

   insert into online
   select *
   from backUp_online

关于mysql - 如何删除重复的记录,但Int除外?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18102693/

10-16 09:07