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;
所以我的数据库中有一个错误,其中 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;