Zapytanie takie jak to pokaże wszystkie rekordy, od najnowszych:
SELECT *
FROM MyTable
ORDER BY Date DESC -- or some autoincrementing ID column
Dzięki klauzuli OFFSET możesz pominąć pierwsze rekordy. Oznacza to, że otrzymasz wszystkie rekordy z wyjątkiem pierwszych 100, czyli otrzymujesz te rekordy, które powinny zostać usunięte:
SELECT *
FROM MyTable
ORDER BY Date DESC
LIMIT -1 OFFSET 100
Możesz następnie użyć tego w podzapytaniu, aby faktycznie usunąć rekordy:
DELETE FROM MyTable
WHERE ID IN (SELECT ID
FROM MyTable
ORDER BY Date DESC
LIMIT -1 OFFSET 100)