我有一个字段,其中包含整数天数。此字段的数量在1-6之间。我希望在一天后对该字段进行倒计时。例如,如果此字段的值在一个之后为4当该字段的值必须更改为3并且此字段的两天值必须更改为2.并且当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脚本时。这并不能保证它每天最多/至少运行一次,但它确保在您访问数据时数据是最新的。