mysql - 我的 SQL 查询在一周后刷新列的值

标签 mysql

|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”的进程“Daemon”。如果当前未启用调度程序,请使用 SET GLOBAL event_scheduler = ON; 启用调度程序。有关配置事件调度程序的更多信息,请参见此处。

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

关于mysql - 我的 SQL 查询在一周后刷新列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333762/

相关文章:

mysql - Update Select SQL Query 是否内置了 Queuing 功能?

java - 如何在网站中创建即时通知系统

mysql - 关于重复 key 更新问题

php - 在 MySQL 中执行 UNION ALL 时设置值

总计值相等时MYSQL子排序

php - 设计重复的 PHP/MySQL 任务

mysql - 多个 LAG 总计为 LEAD

php - PDO 获取最后选定的行

php - 为什么日期时间格式无效 : 1292 Incorrect datetime value after moving to new Mysql?

javascript - 用户登录后可以访问各个网站页面