Una query come questa mostrerà tutti i record, i più recenti per primi:
SELECT *
FROM MyTable
ORDER BY Date DESC -- or some autoincrementing ID column
Con una clausola OFFSET, puoi saltare i primi record. Ciò significa che ottieni tutti i record tranne i primi 100, cioè ottieni quei record che dovrebbero essere cancellati:
SELECT *
FROM MyTable
ORDER BY Date DESC
LIMIT -1 OFFSET 100
Puoi quindi utilizzarlo in una sottoquery per eliminare effettivamente i record:
DELETE FROM MyTable
WHERE ID IN (SELECT ID
FROM MyTable
ORDER BY Date DESC
LIMIT -1 OFFSET 100)