2017-03-14 26 views
0

私のデータベースには、値が変更/更新されるたびに更新する必要があるタイムスタンプなどのupdateinfoがあります。値が変更された場合にmysql dbを更新し、別の値を変更してください

実際に私は最初に値が変更されているかどうか(古い)と値(新しい)があるかどうかをチェックし、その場合は新しいupdateinfosで更新値を追加します。

今、私はそれをより簡単かつ迅速に行うことができます。通常は、値が変更されていない場合は、mysqlを更新しないでください。しかし、私の更新についてはどうですか?もし私がそれらを追加すると、毎回それらを更新するでしょう。実際に変更された値がある場合、mysqlは新しいupdateinfosを設定するだけです例

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

については

は何私はを探しているので、フィールドUpdateinfo =追加する方法があり、この

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

などの一種である「タイムスタンプが...」クエリの場合にSET a = 1、b = 2のうちの1つによって変化があるか?

私は何をお探しですか?

+0

をしてください取得するには、 'A'または 'B'は、新たなデータを持っている場合は、正しい構文であなたが意味 – marmeladze

+0

を、あなたのコードをフォーマット'udateinfo'が更新されるよりも更新するのですか? –

+0

yesまた、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... 
} 

あるRevise#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はいつもこの部分を正常に処理します! – newbieRB

+0

私はちょうどあなたが与えたものをコピーしました、もちろん、値を動的にすることができます。 – Swellar

関連する問題