Teilen Sie die Benachrichtigung in 2 Felder auf
Alert_count: integer
Alert_period: enum('hour','day','month','week')
Und ändern Sie die Abfrage wie folgt:
SELECT *
FROM `activities`
WHERE CASE alert_period
WHEN 'hour' THEN date_sub(`deadline`, INTERVAL alert_count HOUR) >= CURDATE();
WHEN 'day' THEN date_sub(`deadline`, INTERVAL alert_count DAY) >= CURDATE();
...
END CASE