在MySQL数据库中删除n行表格

3
我希望我的表格最多只有10行记录。我会运行cronjob并检查记录是否存在于我的表格中。
为了做到这一点,首先我将尽可能插入尚未存在的记录,然后删除插入的n行以保持行数最多为10行。
如何编写我的DELETE查询?

你为什么不展示一下你尝试过的内容呢? - BigScar
1个回答

5

首先,发起一个简单的请求来获取表中行的总数。然后运行你的删除查询并添加一个 LIMIT 子句,其值等于总数减去10。例如,对于一个有100条记录的表,假设你想要先删除最早的记录,并且该表具有一个 created_at 属性的时间戳:

DELETE FROM mytable ORDER BY created_at ASC LIMIT 90

asc 是 order by 的一部分,如果您不需要对列进行排序,则不需要它。limit 是删除的行数。 - maalls
所以关键是只需要按顺序排序,然后使用limit删除最老的10个?但是你使用了limit 90,那是什么意思? - Jamie Anderson
如果我插入了3行新数据,那么我应该删除...限制为3以保持行的最大值为10,对吗? - Jamie Anderson
保持限制为10,如果总行数与10之间的差为负数或0,则不要删除任何内容,即不要运行删除查询。 - maalls

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接