【问题标题】:MySQL: Delete rows that contain a specific parameter and are older then a day [closed]MySQL:删除包含特定参数且早于一天的行[关闭]
【发布时间】:2018-08-11 17:04:07
【问题描述】:

我正在为我的网站创建一个登录系统,使用 mysql。它适用于基于订阅的系统。如果参数“premium”等于“1 DAY”,我将如何删除所有行,如果它早于一天。我正在尝试在每天运行一次的 cron 作业中运行这样的命令。我会为具有参数“premium”=“1 WEEK”等的行复制这个。

谢谢,

【问题讨论】:

  • 要提出 On Topic 问题,请阅读 What topics can I ask aboutWhat topics to avoidHow to ask a good questionthe perfect question 以及如何创建 Minimal, Complete and Verifiable Exampletake the tour 我们非常愿意帮助您修复代码,但我们不会为您编写代码
  • 另外请注意,1 day 可能表示 24 小时或一个日历日(因此当您在 23:15 购买 1 天保费时,它将在购买后 45 分钟到期)。对于日历日,您还会遇到时区问题。
  • 您可以存储“过期时间”时间戳,而不是将"1 DAY""1 WEEK" 存储在“高级”字段中。当有人购买订阅时适当地设置它,并在您运行清理作业时查找该值早于当前时间的记录。

标签: php mysql login cron


【解决方案1】:

应该是这样的:

delete t from loginsystem t
    where premium = '1 DAY' and created_at < now() - interval 1 day;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2015-02-17
    相关资源
    最近更新 更多