gpt4 book ai didi

php - 如何从数据库中删除过期数据(取决于期间列)

转载 作者:行者123 更新时间:2023-11-29 08:04:33 26 4
gpt4 key购买 nike

我想删除过期的数据。

我有两列:
created_time :包含一个指示 time() 函数 的值(例如:1395836716)
period:包含数据库中剩余行的周期(例如:每天3或7或15或30)

我想创建一个查询来检查表中的所有行,以了解过期的行。
问题是我不知道该怎么做,但我尝试过。

$twentyFour = 60 * 60 * 24;
mysql_query("DELETE FROM content WHERE created_time + (period * $twentyFour ) > '" . time() . "' ");

但不幸的是,并没有像我预期的那样工作。

<小时/>

编辑:

这是行的结果

enter image description here

<小时/>

编辑2

我通过使用 php 条件做到了:

$twentyFour = 60 * 60 * 24;
$query = mysql_query("SELECT * FROM content");
while ($data = mysql_fetch_assoc($query)) {
if ($data['created_time'] + ($data['period'] * $twentyFour) < time()) {
mysql_query("DELETE FROM content WHERE id = $data[id]");
}
}

之前的代码可以正常工作,正如我想要的那样。
问题是前面的代码会发生更多的服务器负载。
我希望查询像前面的代码一样执行而不使用条件。

最佳答案

DELETE FROM content 
WHERE created_time < DATE_ADD(NOW(), INTERVAL `period` DAY)

关于php - 如何从数据库中删除过期数据(取决于期间列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com