从表中删除最小值

nbnkbykc  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(334)

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

wyyhbhjk

wyyhbhjk1#

这样的办法应该行得通。你应该在插入新记录后运行它。

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)
hpcdzsge

hpcdzsge2#

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

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

你可以把索引放在 (score) ,所以运行得更快。
可以将其封装在视图中。

相关问题