删除从上一个午夜起的记录(以午夜为界)
目前我这样删除记录:
DELETE FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 1 DAY)>=last_login
last_login = DATETIME字段
这会在24小时后删除记录,但实际上应在当天结束的午夜删除。
因此无论何时登录,都应在一天结束时删除该记录。
有什么想法?
解决方案
最佳做法是 以今天午夜作为边界。
DELETE FROM users
WHERE last_login < CURDATE();
建立索引:
CREATE INDEX idx_users_last_login ON users(last_login);
使用每天在00:01及以后运行的cron。
mysql -e "DELETE FROM users WHERE last_login < CURDATE();" mydb
或者使用 MySQL事件调度器
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。