首页 > 解决方案 > 我想从 MySQL 表中删除重复的行。请点击以下链接查看表格数据

问题描述

我试图用这个查询来做,但它不工作......

DELETE FROM employee 
    WHERE ( SELECT * FROM
            (SELECT row_number() OVER (partition by id) rn FROM employee) alias
          ) > 1;

请点击此链接查看表格

上面的查询不起作用并给出此错误消息:

错误代码:1242。子查询返回多于 1 行

标签: mysql-workbench

解决方案


通过使用子查询尝试如下

   delete from  
      ( 
        select *.row_number() over (partition by id order by id) rn
        from employee  
      ) alias where rn > 1;

推荐阅读