我想刪除過期的數據。如何從數據庫中刪除過期的數據(取決於期間列)
我有兩列:
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