2014-10-09 53 views
1

我已經在PHP代碼中嵌入了MySQL語句。以下是我的代碼:有條件地更新列PHP/MySQL

$sql1 = "UPDATE labdata1 SET Date='$d1' WHERE SL=1"; 

我想在48小時後將「Date」列設置爲null。我試過是這樣的:

UPDATE labdata1 
    SET Date=NULL 
    WHEN Update_time <(NOW() - INTERVAL 2 MINUTE) 

但在MySQL數據庫中,保持Update_time系統列在MySQL總是NULL

因此而不是在MySQL數據庫編寫的程序中的錯誤,我想這樣做通過PHP代碼。

請讓我知道如何通過PHP代碼做到這一點?

+0

所以你必須在labdata1 UPDATE_TIME列?據我所知,information_schema中沒有updated_time。 – simplexio 2014-10-10 08:08:23

回答

0

如果你想去的地方更新時間過去48小時內,你可以像這樣來設置特定行:

$db = new mysqli('localhost', 'username', 'password', 'database'); 
$sql = 'UPDATE labdata1 
    SET Date = NULL 
    WHERE Update_time >= DATE_ADD(Update_time, INTERVAL -2 DAY)'; 
$query = $db->query($sql); 
if($query->affected_rows > 0) { 
    // update successful! 
} 
+0

即使UPDATE_TIME列始終爲空並且它永不更新,這是否正常工作? – Aaron88 2014-10-13 17:08:29

+0

我找到了解決方案。我不得不創建自定義列來顯示特定行的更新時間。 ALTER TABLE'labdata1'ADD updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP – Aaron88 2014-10-13 17:40:09

+0

對不起,我是數據庫的新手。我還有一個問題。每當我更新表中的某些東西時,是否可以運行此查詢? – Aaron88 2014-10-13 17:49:16