Una consulta como esta mostrará todos los registros, los más recientes primero:
SELECT *
FROM MyTable
ORDER BY Date DESC -- or some autoincrementing ID column
Con una cláusula OFFSET, puede omitir los primeros registros. Esto significa que obtiene todos los registros excepto los primeros 100, es decir, obtienes los registros que deben eliminarse:
SELECT *
FROM MyTable
ORDER BY Date DESC
LIMIT -1 OFFSET 100
Luego puede usar esto en una subconsulta para eliminar los registros:
DELETE FROM MyTable
WHERE ID IN (SELECT ID
FROM MyTable
ORDER BY Date DESC
LIMIT -1 OFFSET 100)