0
我得到了用戶的警報表,其中我們將警報發送到用戶在用戶定義的時間間隔像0(僅一次),3個月,6個月,1年MySQL的DATE_ADD和重複永遠
所以我設計了一個表像這樣
id | user_id | alert_date | repeat_int
-----+--------------+-------------------------+-------------
12 | 747 | 2013-04-19 00:00:00 | 0
13 | 746 | 2013-03-19 00:00:00 | 1
14 | 745 | 2012-04-19 00:00:00 | 0
15 | 744 | 2013-04-19 00:00:00 | 0
16 | 743 | 2013-05-19 00:00:00 | 0
我們發送警報之前一日之寒「alert_date」
用下面的查詢,我可以獲取數據
SELECT al.id,
al.user_id,
al.alert_date,
al.repeat_int AS repunit
FROM alerts AS al
WHERE DATE_ADD(alert_date,INTERVAL repeat_int MONTH)=date_add(CURRENT_DATE,INTERVAL 1 DAY)
OR date(al.alert_date)=date_add(CURRENT_DATE,INTERVAL 1 DAY)
和
其工作的文件,但我真正的問題是
的重複只會使用一次,我們需要它重複每間隔
即。如果提醒日期爲2012-03-14,並且repeat_int爲0 - 只需要工作一次 但如果提醒日期爲2012-03-14且repeat_int爲1 - 需要從2012-03-14開始每14天工作一次2012-03-14
,如果提醒日期是2012-03-14,repeat_int是3 - 需要每三個月工作一次14.即2012-03-14,2012-06-14,2012-09-14等提醒...
是否有任何想法/方法來做到這一點? 在此先感謝
應在二月底發生什麼,如果alert_date是2013年1月31日和repeat_int它1? – pilcrow
然後它會是2013-02-28。查詢返回像這樣..它確定..但任何想法在所有月份重複永遠? – ramesh
一旦確定它已發出警報,您是否更新了alert_date?因爲在這種情況下,查詢會更容易,否則它會更復雜? – Edper