使用MySQL查询重复删除

时间:2018-06-16 17:43:13

标签: mysql duplicates

我创建了一个MySQL表,并且在过去几周内已经填满了。 现在我发现有些行包含重复项

字段deviceId, counter1, counter2一起是唯一索引。但是我不能改变表格,因为有重复。所以我的问题是如何使用MySQL查询删除这些重复项

条目在counter1和/或counter2

上有重复项
*deviceId      ts                  counter1    counter2*
device001     2018-06-11 10:18:51     1           2
device001     2018-06-11 10:23:10     1           2
device002     2018-06-12 08:27:33     321         20
device002     2018-06-12 09:49:13     321         20

从这些副本中删除1。关于如何做到这一点的任何建议?我尝试过以下方法:

创建了表

的副本
CREATE TABLE sp_data_copy LIKE sp_data_orig;
INSERT sp_data_copy SELECT * FROM sp_data_orig;

从复制表中选择并删除

DELETE FROM sp_data_copy
WHERE ts IN (
    SELECT ts 
    FROM sp_data_orig
    GROUP BY counter1, counter2
    HAVING COUNT(*) > 1);

但显然它对我不起作用。希望你有一些建议。 提前致谢

0 个答案:

没有答案