SQL 每隔一行删除一次

SQL delete every second row

所以我的数据库中有一个错误,其中 table 确实复制了它自己并且在每一行中不再有不同的值,因此每一行都是 100% 重复的。 现在我需要每隔一行删除一次以解决该问题,但是导出、删除这些行并将其重新导入时,运行s 出错了。 我的下一个想法是 运行 删除每隔一行的 DELETE 函数。 我现在的方法好像不行。

    SELECT *, ROW_NUMBER() OVER() AS num_row
    FROM `category`
    WHERE num_row=2
    ORDER BY `auto_increment` ASC

这是我的table:

也许您可以使用 tmp table.

找到解决方法
CREATE TABLE tmp SELECT distinct * FROM category;

然后清空您的 table 类别并在其中插入来自 tmp table 的所有数据。 如果您遇到任何 forein_key 问题,只需在清理重复行时将其禁用即可:

SET foreign_key_checks=0;

完成后

SET foreign_key_checks=1;