我想删除过期的数据。如何从数据库中删除过期的数据(取决于期间列)
我有两列:
created_time
:包含的值指示time()
功能(ex: 1395836716)
。
period
:包含数据库(ex: 3 or 7 or 15 or 30 per day)
中保持行的时间段。
我想创建一个查询来检查表中的所有行,以知道过期的行。
问题是我不知道该怎么做,但我试过了。
$twentyFour = 60 * 60 * 24;
mysql_query("DELETE FROM content WHERE created_time + (period * $twentyFour) > '" . time() . "' ");
但不幸的是,没有按预期工作。
编辑:
这是行的结果
编辑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 +(period * $ twentyFour)
无法正常工作。 –
请定义“不起作用” - 缺乏细节是如此无益。请注意,在问题中您指出该字段是时间戳,但图像(不确定它应该表示什么)使用日期。请给出删除/未删除记录的具体例子。 – AD7six