【问题标题】:Delete an entry from a table once it's been there for more than x days从表中删除已存在超过 x 天的条目
【发布时间】:2013-11-09 13:26:10
【问题描述】:

我有一个系统,您可以在其中“免费”获得一些东西,但每 7 天只能获得一次,我目前在每 7 天一次部分遇到问题。

我想要做的是在一个或多个条目超过 7 天后删除某个表中的条目。相关表有一个 ID、USERNAME 和 DATE 列。

有什么想法吗?

【问题讨论】:

    标签: mysql date time


    【解决方案1】:

    应该很简单:

    delete from theTable where date < now() - interval 7 days;
    

    确保足够频繁地运行它,这样您就不必删除很多行。
    如果您处于没有复制的环境中,您可以继续添加限制

    delete from theTable where date < now() - interval 7 days limit 1000;
    

    如果这是一个大表,则在日期(或日期在前)上放置一个索引,这样它就不会进行表扫描。

    【讨论】:

    • @Swaly:上面的查询从表中删除所有超过 7 天的条目。把它放在每天运行的活动中,你就完成了
    猜你喜欢
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多