从表中删除最小值

时间:2018-01-16 17:34:04

标签: mysql sql database min

我有一个10个高分的表,当一个新用户出现一个大于最低的新高分时,我想从表中删除最低分数。我已经尝试了所有建议的方法。请有人帮忙。

2 个答案:

答案 0 :(得分:0)

不要从表中删除 - 涉及太多维护。只需运行查询:

select t.*
from t
order by t.score desc
limit 10;

您可以在(score)上放置一个索引,这样运行得更快。

您可以将其封装在视图中。

答案 1 :(得分:0)

这样的事情应该有效。您在插入新记录后运行它。

delete from t t1 where t1.score not in 
(select t2.score from t t2 order by t2.score desc limit 10)

如果表中的每条记录都有唯一的ID,那么我将按如下方式对其进行修改:

delete from t t1 where t1.id not in 
(select t2.id from t t2 order by t2.score desc limit 10)
相关问题