2016-04-29 73 views
-1

我知道当您搜索这个内容时会出现很多结果,但我无法找到一个简单明了的答案来回答我想要的内容。MySQL删除后续重复操作

为简单起见,说我有两列的表:

“CALL_ID”(PK,独特的,自动递增)&“全局唯一标识符”

我想重复删除的行guid,保持每个guid的第一次出现。

回答

0

您可以使用join

delete c 
    from calls c left join 
     (select guid, min(call_id) as minci 
      from calls 
      group by guid 
     ) cc 
     on cc.minci = c.call_id 
    where cc.minci is null; 
+0

注意,这也将删除具有NULL的GUID列值的所有行。 (这可能是OP想要的行为,但规范没有提及任何有关它的事情。)我们是否认为GUID的NULL值是相互“重复的”,还是认为是不同的? – spencer7593

+0

谢谢。我宁愿不删除空值 – nevodj

+0

如果'guid'有可能是'NULL',则在'delete'中添加'where guid not null'。 –