Предполагая, что этот запрос выбирает строки, которые вы хотите сохранить:
SELECT timestampcol FROM table ORDER BY timestampcol DESC LIMIT 49,1;
Тогда вы можете использовать подзапрос, например, так:
DELETE FROM table WHERE timestampcol < ( SELECT timestampcol FROM table ORDER BY timestampcol DSEC LIMIT 49,1 )
Конечно, убедитесь, что у вас есть резервная копия, прежде чем делать что-либо потенциально разрушительное. Обратите внимание, что по сравнению с другими упомянутыми подходами, использующими IN
, этот способ позволит избежать 50 целочисленных сравнений для каждой удаляемой строки, что сделает его (потенциально) в 50 раз быстрее - при условии, что я правильно понял SQL.