2017-03-14 117 views
0

在我的數據庫中我有一個updateinfo與時間戳記等,每當這些值更改/更新時,應該更新。更新MySQL數據庫,如果值更改並更改另一個值

實際上,我首先檢查是否有更改值(舊)和值(新)只有當它,我添加更新值與新updateinfos。

現在我問自己,我該如何做到這一點更容易和更快。如果數值沒有改變,通常mysql不更新somethink。但關於我的updateinfos怎麼樣。如果我添加它們,mysql會每次更新它們。我怎麼能這樣做,如果真的有更改的值,mysql只設置新的updateinfos?

對於實例

mysql SET a=1, b=2, Updateinfo='TIMESTAMP+IP' 

我尋找的是一種這樣的

mysql SET a=1, b=2, (Updateinfo='Timestamp+IP' ONLY IF a or b has updated) 

那麼,有沒有辦法添加字段updateInfo時=「時間戳...」的查詢,如果有一個SET a = 1,b = 2的變化。

希望我能解釋我在找什麼。

+0

請格式化語法正確 – marmeladze

+0

你的代碼,你的意思是,如果'了'或'B'有新的數據更新比'udateinfo'更新? –

+0

是的,但也設置並更新updateinfo – newbieRB

回答

1

像這樣的東西?這只是一個僞代碼,但你的想法

run_query("UPDATE table SET a=1, b=2"); 
if(success == run_query){ 
    run_query("UPDATE table SET Updateinfo='Timestamp+IP' WHERE a=1 AND b=2"); 
} else { 
    //some other things... 
} 

修訂#1

$a = 'somevalue'; 
$b = 'somevalue2'; 

$result = fetch -> run_query('SELECT a, b FROM table'); 
$existingA = $result["a"]; 
$existingB = $result["b"]; 

if(($existingA != $a) || ($existingB != $b)){ 
    run_query("UPDATE table SET a=$a, b=$b, Updateinfo='Timestamp+IP'"); 
} 
+0

糾正我,如果我誤解了OP的問題 – Swellar

+0

我認爲這樣你每次更新updateinfo,MySQL將一直成功這個if-part!? – newbieRB

+0

我剛剛複製了你給出的東西,你當然可以使值變爲動態的。 – Swellar

相關問題