如果数据库值超过了某个日期,您可以使用mysql来更改它吗


Can you use mysql to change database value, if it is past a date?

假设我有两列。日期和状态。

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

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

比方说,2天后,我希望它自动更改为"未回答",我可以使用mysql吗?还是我必须使用一些脚本语言,比如PHP,并每天运行它?

这应该通过每晚运行的cron脚本来实现。

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

不过,您可能需要先检查日期格式。

您可以在下一次插入时使用"插入后"触发器来更新现有值。但是,如果您不能依赖于不断输入的新值,那么cron作业是您的最佳选择。

使用每次需要时都运行的cron脚本,例如,对于可以使用的mysql:

mysql -h hostname -u username -ppassword -e "query to run"