我有一个10个高分的表,当一个新用户带来一个新的高分,大于最低分,我想从表中删除最低分。我已经尝试了所有建议的方法。请找个人帮忙。
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)
hpcdzsge2#
不要从表中删除--太多的维护工作。只需运行查询:
select t.* from t order by t.score desc limit 10;
你可以把索引放在 (score) ,所以运行得更快。可以将其封装在视图中。
(score)
2条答案
按热度按时间wyyhbhjk1#
这样的办法应该行得通。你应该在插入新记录后运行它。
如果表中的每条记录都有一个唯一的id,那么我将按如下方式修改它:
hpcdzsge2#
不要从表中删除--太多的维护工作。只需运行查询:
你可以把索引放在
(score)
,所以运行得更快。可以将其封装在视图中。