|User_ID |Weekly_Score|Total_Score|
这是我的表,User_ID 是主键。我应该如何编写查询以在新一周开始时将 Weekly_score 中的值刷新为 0?(上周得分为20分,总分为50分。新一周开始时应该是0分和50分。)
|User_ID |Weekly_Score|Total_Score|
这是我的表,User_ID 是主键。我应该如何编写查询以在新一周开始时将 Weekly_score 中的值刷新为 0?(上周得分为20分,总分为50分。新一周开始时应该是0分和50分。)
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 上)运行更新语句。