2014-02-27 65 views
0

我有一個字段,它保存的日期數是整數,這個字段的數字是1-6之間。我想在一天之後對這個字段進行倒計數。例如,如果值該字段的值爲4後,該字段的值必須更改爲3,並且該字段的兩個值後必須更改爲2,並且在4天結束時,該字段必須刪除。 我該怎麼辦?在mysql數據庫中倒計數字段的值

+7

寫一個cron工作,每天做一次? – Naruto

+0

使用MySQL事件計劃程序。 https://dev.mysql.com/doc/refman/5.1/en/events.html – Barmar

回答

1

您可以通過)三種方式爲,

1.Mysql事件調度 2.Cronjob 3.jquery的setInterval(

但要做到最好的方式做到這一點是因爲cornjob,事件調度您需要將mysql服務器連接始終打開。只有在刷新或加載頁面時調用jquery setinterval()函數,才能調用setinterval()。

0

這聽起來不像是一個非常合理的方法來解決這個問題。例如,我假設你想擁有一段時間後自動刪除的記錄。你爲什麼不添加一個時間戳到期?然後,您可以根據評論者的建議設置預定作業,或者運行查詢DELETE FROM ... WHERE expiration_timestamp <= NOW() - 例如 - PHP腳本運行時。這並不能保證它每天至少運行一次,但確保數據在您訪問時保持最新。

1

另一種方法是存儲字段第一次設置的日期和計數。然後,您可以使用視圖在任何特定日期獲得計數:

select t.*, 
     greatest(0, cnt - datediff(date(now()), SetDate))) as currentvalue 
from table t 
having currentvalue > 0; 

實際上您不必從表中刪除該值。它可能在未來用於審計目的很有用(除非表格很大,所以減小尺寸實際上是有用的)。

1

使用cron作業來安排此腳本。

UPDATE table SET day = (day - 1) WHERE your condition;