如果条件匹配,如何在一段时间间隔后更新表格?
tb_contest id contest_id name is_expire 1 101 new 0 2 102 old 0 tb_answer contest_id answer_id date 101 1 2012-02-02 101 2 2012-09-14 102 5 2012-06-01
我需要tb_contest
在满足某些条件后更新,并is_expire=1
根据收到的最后一个答案在2天后进行更新:2012-03-14
所以tb_contest
应该更新2012-09-16
.
您可以使用MySQL的事件调度程序:
CREATE EVENT expire_contests
ON SCHEDULE EVERY DAY
STARTS CURRENT_DATE
DO UPDATE tb_contest JOIN (
SELECT contest_id, MAX(date) AS latest
FROM tb_answer
GROUP BY contest_id
) t USING (contest_id)
SET tb_contest.is_expire = 1
WHERE tb_contest.is_expire <> 1
AND t.latest <= CURRENT_DATE - INTERVAL 2 DAY
Run Code Online (Sandbox Code Playgroud)