2017-03-14 57 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

相关问题