使用mysql,如何删除表中的所有行,但保留200条记录?
显而易见的方法是计算它们,做一些算术运算,并删除正确的数字。但是mysql是否有一些内置函数可以在一个删除查询中执行它?
答案 0 :(得分:3)
您可以使用条件删除:
delete from YourTable
where YourSequentialID > 200
但是,您的顺序可能会有间隙,因此您不会完全 200行。所以你能做的就是努力处理你的状况。
找到你想要保留的记录(比如前200个)并删除其他所有记录:
delete from YourTable
where id not in
(
select ID
from YourTable
LIMIT 200
)
我知道,这可能很慢。但这不是一个生产查询,它只是一个清理查询。你可以忍受只运行一次。