Możesz spróbować użyć do tego celu MySQL Events:
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
UWAGA, że harmonogram zdarzeń MySQL musi być włączony na twoim serwerze:
SET GLOBAL event_scheduler = ON;