0

|User_ID |Weekly_Score|Total_Score|

这是我的表,User_ID 是主键。我应该如何编写查询以在新一周开始时将 Weekly_score 中的值刷新为 0?(上周得分为20分,总分为50分。新一周开始时应该是0分和50分。)

4

1 回答 1

0

UPDATE您可以使用语句创建 MySql 事件

CREATE EVENT ev_reset_weekly_scores
ON SCHEDULE EVERY 1 WEEK STARTS '2013-01-30 00:00:00' DO
  UPDATE scores
     SET Total_Score = Total_Score + Weekly_Score, 
         Weekly_Score = 0;

注意:确保为您的活动指定正确的开始日期时间。

用于SHOW PROCESSLIST检查是否启用了事件调度程序。如果它打开,您应该看到用户“event_scheduler”的进程“守护进程”。SET GLOBAL event_scheduler = ON;如果当前未启用,则用于启用调度程序。更多关于在此处配置事件调度程序的信息。

mysql或者,您可以使用CLI 使用 cron 或 Windows 任务计划程序(如果您在 Windows 上)运行更新语句。

于 2013-06-27T05:41:54.500 回答