【问题标题】:How to delete data which is older than 30 minutes or 24 hours from mysql table using php如何使用php从mysql表中删除超过30分钟或24小时的数据
【发布时间】:2015-08-17 14:31:37
【问题描述】:

我想删除插入数据的时间Column is called Created 比当前时间早 30 分钟或 24 小时的数据行。

我浏览了整个网站,他们不断建议这样做:

mysql_query("DELETE FROM ytable WHERE Created < (NOW() - INTERVAL 30 MINUTES);",$db_con);


或类似的东西,但它永远不会起作用。

代码的哪一部分是错误的。请帮忙。

【问题讨论】:

  • 您的表中是否有已创建的列?还是创建的时间戳?
  • 我可以假设您使用 PHP 作为查询代理来获取/存储数据,因为您放置了 php 标记?如果是这样,为什么不使用它来做这样的时间测试?
  • @shanehoban 这是一个叫做'Created'的列,它是一个时间戳,它插入了插入数据行的时间。
  • @MasayukiTonoki 太棒了!现在,这是通过 MySQL 创建的时间戳,还是在 PHP 中创建的时间戳?
  • @shanehoban 通过 MySQL 创建。这有关系吗?

标签: php mysql sql-delete


【解决方案1】:

这比什么都提供更多信息,也许也可以回答您的问题。我正在尝试扩展我上面的长评论。这正是我所做的。这不是圣经和个人喜好。

在您的 MySQL 表中,创建一个 INTEGER,甚至 VARCHAR 也可以。使用 PHP 生成创建时间(从 1970 年开始的一长串数字)。这是这样生成的:

$currentTime = time(); // e.g. 1439823230

这在您的 INSERT 查询期间使用,前提是它们也是通过 PHP 发起的。

现在,您还可以为此考虑时区,但这将再次取决于您的偏好和/或服务器位置。

现在,当您的数据库中有大量项目时,您始终可以创建自己的查询,查询要从中提取数据的时间长度。例如:

$twentyFourHoursAgo = ($currentTime - 60*60*24);

#Example Query:
SELECT * FROM whatever_table WHERE created > $twentyFourHoursAgo

以上示例将返回过去 24 小时内的所有内容。根据需要乘以您的时间。还要确保绑定你的参数,不要像上面的伪样例中那样对它们进行硬编码。


这是一个有用的资源:@​​987654321@

具体:http://www.phptherightway.com/#pdo_extension

【讨论】:

    【解决方案2】:

    你可以使用 DATE_SUB:

    .. where Created < DATE_SUB(NOW(), INTERVAL 30 MINUTE)
    

    【讨论】:

      【解决方案3】:

      我相信您只需要从 MINUTES 中删除“S”:

      mysql_query("DELETE FROM ytable WHERE Created < (NOW() - INTERVAL 30 MINUTE);",$db_con);
      

      【讨论】:

      • 这确实删除了 30 分钟前创建的所有数据,但它更新了未删除数据行的时间,这意味着如果我尝试每 30 分钟删除一次数据,它将成为数据不被删除的循环
      • 您是否在某个地方运行了另一个查询?这应该只是删除,而不是删除和更新。
      • 我也每 30 分钟更新一次页面。这是因为我想获取新数据并删除旧数据。有什么解决办法吗?
      • 即使页面每 30 分钟刷新一次,上面的查询也不应该在其他时间更新。您能否使用更新查询所在的代码部分更新您的原始帖子?
      【解决方案4】:

      $time = date('YmdHis', time() - 1800);

      $query = mysql_query($db_con, "DELETE FROM ytable WHERE date_time

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多