如果值已更改,则更新mysql db并更改另一个值

时间:2017-03-14 05:25:04

标签: php mysql

在我的数据库中,我有一个带有时间戳等的updateinfo。每当值发生变化/更新时,都应该更新。

实际上我首先检查是否有更改值(旧)和值(新)仅在其中,我使用新的updateinfos添加更新值。

现在我问问自己如何能够更轻松,更快速地完成任务。如果值没有改变,Normaly mysql不会更新somethink。但是有关我的更新的信息。如果我添加它们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)

如果有一个SET a = 1,b = 2,那么有没有办法将字段Updateinfo ='Timestamp ...'添加到查询中?

希望我能解释一下我在寻找什么。

1 个答案:

答案 0 :(得分: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'");
}