从TABLE WHERE中删除?

时间:2013-06-17 15:59:13

标签: mysql

我有一个表,我需要正确的语句来删除重复的记录。我想通过删除表中的行来实现这一点,其中多个列值等于同一个表中其他记录的行。我可以做简单delete from [table] where [col] = [val],但我不知道如何做到这一点。你能提供一个我可以使用的模板吗?

感谢。

2 个答案:

答案 0 :(得分:1)

delete from [table] 
where [col] not in 
(
  select * from 
  (
    select min([col])
    from [table]
    group by [col]
    having count(distinct [val]) <> count([val])
  ) x
)

如果您从MySQL中删除的表中进行选择,那么您必须使用子查询来隐藏它。这就是我使用select * from (...) x

的原因

答案 1 :(得分:0)

假设原始密钥的ID是7

DELETE FROM [table] WHERE [col1] = [val1] AND [col2] = [val2] .... AND [id] != 7;