У меня таблица из 10 баллов, когда новый пользователь приходит с новым высоким счетом, который больше, чем самый низкий, я хочу удалить минимальный балл из таблицы. Я пробовал каждый предлагаемый способ сделать это. Пожалуйста, помогите кому-нибудь.
Что-то вроде этого должно работать. Вы запустили его после вставки новой записи.
delete from t t1 where t1.score not in
(select t2.score from t t2 order by t2.score desc limit 10)
Если у вас есть уникальный идентификатор для каждой записи в таблице, я бы изменил его следующим образом:
delete from t t1 where t1.id not in
(select t2.id from t t2 order by t2.score desc limit 10)
Не удаляйте из таблицы слишком много обслуживания. Просто запустите запрос:
select t.*
from t
order by t.score desc
limit 10;
Вы можете указать индекс (score)
, чтобы он работал быстрее.
Вы можете инкапсулировать это в виде.