-1
我知道当您搜索这个内容时会出现很多结果,但我无法找到一个简单明了的答案来回答我想要的内容。MySQL删除后续重复操作
为简单起见,说我有两列的表:
“CALL_ID”(PK,独特的,自动递增)&“全局唯一标识符”
我想重复删除的行guid,保持每个guid的第一次出现。
我知道当您搜索这个内容时会出现很多结果,但我无法找到一个简单明了的答案来回答我想要的内容。MySQL删除后续重复操作
为简单起见,说我有两列的表:
“CALL_ID”(PK,独特的,自动递增)&“全局唯一标识符”
我想重复删除的行guid,保持每个guid的第一次出现。
您可以使用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;
注意,这也将删除具有NULL的GUID列值的所有行。 (这可能是OP想要的行为,但规范没有提及任何有关它的事情。)我们是否认为GUID的NULL值是相互“重复的”,还是认为是不同的? – spencer7593
谢谢。我宁愿不删除空值 – nevodj
如果'guid'有可能是'NULL',则在'delete'中添加'where guid not null'。 –