我正在制定運輸計劃。我的MySQL(i)/ PHP知識是(非常)基本的。MySQL:具有重複任務的運輸計劃員
我想顯示一個包含特定日期所有任務的HTML表格。 但問題是有些任務需要重複(直到我刪除整個任務),因此任務的頻率如下:一次,每天,每週,每兩週和每月。
因此,當我在星期一以每週頻率添加新任務時,每個星期一該任務必須返回到我的表中。
我應該結合起來是這樣的:
SELECT * FROM planner
WHERE frequency = `once`
AND date = CURDATE()
SELECT * FROM planner
WHERE frequency = `daily/weekly/two-weekly/monthly/yearly`
AND day = DAYOFWEEK(CURDATE())
AND date + INTERVAL 1 DAY/1 WEEK/2 WEEK/1 MONTH
如果是的話,怎麼樣呢?
希望有人能幫助我。
編輯:
這一次,每天和每週的任務,這樣的查詢(可能還可怕)會做:
(SELECT *
FROM planner
WHERE frequency = 'once'
AND date = NOW())
UNION
(SELECT *
FROM planner
WHERE frequency = 'daily'
AND date + INTERVAL 1 DAY)
UNION
(SELECT *
FROM planner
WHERE frequency = 'weekly'
AND day = DAYOFWEEK(CURDATE())
AND date + INTERVAL 1 WEEK)
雖然,對於「兩週刊」和「月」 INTERVAL + 2周/ 1個月,將返回結果每周。如何解決這個問題?
編輯:
我不使用有效性colums在我的表,因爲我不知道過期/無效過去的任務。我將筆記本電腦的年份更改爲2040年,確實出現了mysql錯誤。我已經改變了計劃,我認爲重複任務一年有效,可以選擇刪除或延長一年。然後我也忘了提及,當我每個星期一創建一個任務時,每月都有一個任務,那麼任務會在下個月的第一個星期一返回到我的表中。當我嘗試你的解決方案時,我的桌面上每天都會出現「一次」頻率的任務。
EDIT
@SparKot,通常使用每月頻率任務被觀看時,例如,2013年3月5日,下一次將是2013年4月5日,2013年5月5日和等等。 雖然在這個規劃師的例子中設置了一個月度任務,週二2013-03-05應該在下個月的第一個週二(4月:2013-04-02,可能:2013-05-07,6月:2013-06)重新出現-04)。
你不具備有效期爲'重複任務'?如果您忘記刪除無效任務會怎麼樣?請分享表架構,'show create table planner'。 – SparKot 2013-03-04 19:27:29