Puoi provare a utilizzare MySQL Events per questo:
CREATE EVENT IF NOT EXISTS `dbName`.`eventName`
ON SCHEDULE
EVERY 1 DAY // or 1 HOUR
COMMENT 'Description'
DO
BEGIN
DELETE FROM `dbName`.`TableName` WHERE `expireDateCol` < NOW();
END
NOTA che MySQL Event Scheduler deve essere abilitato sul tuo server:
SET GLOBAL event_scheduler = ON;