2010-09-27 32 views
1

我是MySql的初學者。但我正在創建一個日曆應用程序,我有一個未來事件發佈的數據庫。事件帖子具有屬性:id,title,startTime,endTime,startDate,repeat。在最後一個屬性重複的地方,如果事件發佈應該每週重複一次,或者每月不重複startDate。分類出屬性的第三個出現

我想要一個sql查詢來排列事件帖子,其中只有三個第一個日期發生在今天開始的數據庫中?例如,如果我們擁有數據庫中日期14,16,19的事件帖子,那麼這些日期將僅顯示其相應的事件帖子。三個第一日期之後的其他日子將不會被顯示。

請幫助ME

回答

1

要獲得事件接下來的三個不連續的天,從今天開始,使用:

SELECT x.* 
    FROM (SELECT ep.*, 
       CASE 
       WHEN DATE(@dt) = DATE(x.dt) THEN @rownum 
       ELSE @rownum := @rownum + 1 
       END AS rank, 
      FROM EVENT_POST ep 
      JOIN (SELECT @rowrum := 0, @dt := NULL) r 
     WHERE ep.startdate >= CURRENT_DATE 
     ORDER BY t.startdate, t.starttime) x 
WHERE x.rank <= 3 

要獲得事件接下來的三個連續的天,從今天開始,使用DATE_ADD function

SELECT ep.* 
    FROM EVENT_POST ep 
WHERE ep.startdate BETWEEN DATE(NOW) 
         AND DATE_ADD(DATE(NOW), INTERVAL 3 DAY) 
+0

我認爲這個答案對我來說無能爲力。數據庫中發生的日期不需要有三天的時間間隔,可能是從三天到永恆 – einstein 2010-09-27 17:16:55

+0

@ Woho87:已更新爲解決非連續的日子。 – 2010-09-27 17:38:53

相關問題