在我的一个Web应用程序(PHP和MySQL)中有一个用户事件提醒。用户可以添加下一个提醒日期,也可以设置重复间隔(即仅限一次,3个月,6个月和每年)。保存了具有价值的MySQL日期重复
0 - One time event
3 - Every 3 months
6 - Every 6 months
12 - Yearly
表像
id | emp_id | alert_date | repeat_interval
--------+----------------+-----------------------+----------------------
1 | 124 | 2014-05-02 00:00:00 | 3
--------+----------------+-----------------------+----------------------
2 | 123 | 2014-05-02 00:00:00 | 12
--------+----------------+-----------------------+----------------------
3 | 122 | 2014-02-02 00:00:00 | 6
--------+----------------+-----------------------+----------------------
4 | 121 | 2014-07-02 00:00:00 | 0
--------+----------------+-----------------------+----------------------
5 | 124 | 2014-05-02 00:00:00 | 6
--------+----------------+-----------------------+----------------------
6 | 125 | 2014-08-02 00:00:00 | 6
--------+----------------+-----------------------+----------------------
7 | 126 | 2014-06-02 00:00:00 | 12
--------+----------------+-----------------------+----------------------
8 | 127 | 2014-05-02 00:00:00 | 3
------------------------------------------------------------------------
的REPEAT_INTERVAL现在我每天早上有一个“的cronjob”跑,寻找事件和警报发送给用户。我有以下的MySQL查询
SELECT *
FROM alerts as al
WHERE date(al.alert_date) = DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY);
这将返回tmrw的警报,我可以用这个邮件发送。但我的问题是如何也采取这些间隔?
即如果alert_date是2013年1月5日,并设置重复3个月,然后需要在 2013年1月5日发送邮件和3个月
的间隔其实这是这样做的正确方法目的?或者我需要改变表格?
任何人都可以给我一个想法吗? 在此先感谢
请更具体。您是否希望从'alert_date'或'alert_date'发送一封'每天3个月'的电子邮件,然后在'alert_date'后3个月再发一封电子邮件。 – RiggsFolly
由于该列名称为repeat_ * interval *,因此我认为可以安全地假设这是一个重复发生。 – Eric