从表中删除行但保留给定的数字

时间:2011-08-11 16:36:53

标签: mysql sql sql-delete

使用mysql,如何删除表中的所有行,但保留200条记录?

显而易见的方法是计算它们,做一些算术运算,并删除正确的数字。但是mysql是否有一些内置函数可以在一个删除查询中执行它?

1 个答案:

答案 0 :(得分:3)

您可以使用条件删除:

delete from YourTable
where YourSequentialID > 200

但是,您的顺序可能会有间隙,因此您不会完全 200行。所以你能做的就是努力处理你的状况。

找到你想要保留的记录(比如前200个)并删除其他所有记录:

delete from YourTable 
where id not in
(
select ID 
from YourTable
LIMIT 200
)

我知道,这可能很慢。但这不是一个生产查询,它只是一个清理查询。你可以忍受只运行一次。