2012-07-19 37 views
0

假设我有两列。日期和状态。如果超过日期,您可以使用mysql更改数据库值吗?

当新行进入时,STATUS会设置一个默认值。状态有四个值:

Not Answered, 
Just Asked (Default), 
Answered, 
Closed 

让后第2天的说,我想它会自动更改为不回答,我可以使用MySQL来做到这一点?或者我必须使用PHP之类的脚本语言并每天运行它?

回答

3

这应该用你每天晚上运行的cron脚本来完成。

UPDATE `my_table` SET status = 'Not answered' WHERE date = ADDDATE(now(), -2); 

虽然您可能需要检查日期格式1st。

+0

,你能解释一下?对不起,我在这是半新的! – Linux4Hope 2012-07-19 14:02:19

+1

cronscript是一个php文件,您可以通过sheduled任务从CLI运行。 – Peon 2012-07-19 14:06:34

+0

太棒了!非常感谢!这对我来说工作得很好!谢谢! – Linux4Hope 2012-07-19 14:08:17

0

您可以使用“插入后”触发器进行下一次插入以更新现有值。但是如果你不能依赖一直输入的新值,那么一个cron工作是你最好的选择。

0

使用您运行每次你需要时间,例如,对于一个MySQL,你可以使用cron脚本:我不熟悉这个术语的cron脚本

mysql -h hostname -u username -ppassword -e "query to run" 
相关问题