У меня есть таблица с данными, которые мне не нужно хранить очень долго, поэтому каждую ночь я хочу удалить все строки, кроме последних 20.
Для этого я нашел следующий запрос:
DELETE FROM Table WHERE ID NOT IN (
SELECT id FROM (
SELECT TOP 10 ID FROM Table
) AS x
)
MySQL не поддерживает функцию TOP, поэтому я переписал ее, чтобы использовать вместо нее LIMIT:
DELETE FROM Table WHERE ID NOT IN (
SELECT id FROM (
SELECT ID FROM Table ORDER BY ID DESC LIMIT 10
) AS x
)
К сожалению, похоже, что MySQL не поддерживает функцию LIMIT внутриподзапросы.Так что мне теперь делать?
Как выбрать все, кроме 10 строк с самым высоким идентификатором?
Я мог бы просто удалить все записи, которые старшечем день или что-то, но я чувствую, что я должен быть в состоянии сделать это таким образом.