开发者社区 问答 正文

MySQL:如何删除重复记录或插入时检查重复?

我知道有很多答案使用rank()或row_number()表示,但是,SQL-FRONT或Navicat不支持它们,我尝试使用Microsoft SSMS,但它不支持我的sql。我尝试了很多方法,但是没有用。所以我现在无望了。

表如下所示,我只想知道如何删除具有相同名称和时间的重复记录。谢谢。

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 18:04:47 550 分享 版权
1 条回答
写回答
取消 提交回答
  • 使用EXISTS子句查找重复项。

    delete from mytable where exists ( select * from mytable other where other.name = mytable.name and other.time = mytable.time and other.id < mytable.id ); 至于插入:在两列上放置唯一约束。通常使用唯一索引来完成此操作:

    create unique index idx_unique_name_time on mytable (name, time);

    2019-11-18 18:05:05
    赞同 展开评论