倒计数mysql数据库中的字段值

时间:2014-02-27 13:08:54

标签: php mysql

我有一个字段,其中包含整数天数。此字段的数量在1-6之间。我希望在一天后对该字段进行倒计时。例如,如果此字段的值在一个之后为4当该字段的值必须更改为3并且此字段的两天值必须更改为2.并且当4天结束时,此字段必须删除。 我该怎么办?

4 个答案:

答案 0 :(得分:1)

另一种方法是存储首次设置字段的日期和计数。然后,您可以使用视图获取任何特定日期的计数:

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

您实际上不必从表中删除该值。它可能在将来用于审计目的(除非表格很大,因此减小尺寸实际上很有用)。

答案 1 :(得分:1)

你可以通过三种方式做到这一点,

1.Mysql事件调度程序 2.Cronjob 3.jquery setInterval()

但最好的方法是使用cornjob,因为对于事件调度程序,您需要始终打开mysql服务器连接。只有当您调用setinterval()时刷新或加载页面时,才会调用jquery setinterval()函数。 / p>

答案 2 :(得分:1)

使用cron作业来安排此脚本。

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

答案 3 :(得分:0)

听起来不是一种非常明智的方法。我假设你想拥有一段时间后自动删除的记录。为什么不添加它到期的时间戳?然后,您可以按照评论者的建议设置预定作业,或者只运行查询到DELETE FROM ... WHERE expiration_timestamp <= NOW() - 例如 - 运行PHP脚本时。这并不能保证它每天最多/至少运行一次,但它确保在您访问数据时数据是最新的。