Od pewnego czasu hołduję zasadzie - nigdy nie kasuj danych z bazy.
Po to te mechanizmy powstały, żeby przechowywać w nich dane.
To w kwestii Twojego kasowania wpisów.
Jeśli koniecznie chcesz kasować lub (lepiej) wybierać wpis sprzed (lepiej: wybierać od) określonej daty, zaraz po ID dodaj pole timestamp. Przy dodawaniu nowego wpisu nadajesz mu wartośc
NOW()
i teraz:
1. Aby usunąć:
DELETE *
FROM foo
WHERE timestamp_field < DATE_SUB( NOW(), INTERVAL 30 DAY )
2. Aby wybrać:
SELECT *
FROM foo
WHERE timestamp_field > DATE_ADD( NOW(), INTERVAL 30 DAY )
Nie potrzeba subselectów...
NIe trzeba niczego liczyć....
Wystarczy wiedzieć, że programowanie to coś więcej niż tylko stukanie w klawiaturę