У меня есть таблица игр, в которой содержатся столбцы ID, Name, Score, Time. Всего в таблице содержится 10 строк, в которых хранится 10 лучших записей игры. Моя программа, когда пользователь имеет возможности ввести 10 сверху, строку с максимальным (временем) будет удалена:SQL выбирает только одну строку, когда есть два max (XXX)
delete from game where time = (select x.del_time from (select max(time) as del_time from game) x)"
Однако, при наличии более чем 1 строки с одинаковыми максами (время), он будет удалите обе строки. Мой вопрос: как удалить только 1 строку? Точно так же, как если максимальное время будет одинаковым, получите максимальный балл, и если максимальный балл будет одинаковым, получите максимальный ID (поскольку идентификатор является автоматическим приращением, это будет не то же самое). Спасибо!!
Попробуйте использовать «LIMIT 1» в конце запроса – liding
Также обратите внимание, что ваш исходный запрос может быть выполнен с одним подзапросом и без наложения псевдонимов, что упростит его: 'удалить из игры, где time = (select max (время) из игры) '. –
@EdGibbs Он показывает ошибку "# 1093 - Вы не можете указать целевую таблицу" игра "для обновления в разделе FROM" в любом случае спасибо! –