このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1274791771/758
#  MySQLで、複数の行のそれぞれ狙った項目だけを一度に更新する方法はありますか? 
#   
#  例えばhoge( key, value1, value2 )というテーブルに対して、やりたいこととしては 
#   
#  INSERT INTO hoge( key, value1, value2 )VALUES 
#  (1, 10, 今の値), 
#  (2, 今の値, 20) 
#  ON DUPLICATE KEY UPDATE 
#  value1 = VALUES(value1), 
#  value2 = VALUES(value2) 
#   
#  こんなイメージです。変えたいトコだけ変えて、他は現状維持してくれっていう。 
# 
# 

'複数の行のそれぞれ狙った項目だけを一度に更新する。変えたいトコだけ変えて、他は現状維持。'(_変更値ならび) :-
        append(_,[[_key,_value11,_value22]|R],_変更値ならび),
        retract(hoge(_key,_value1,_value2)),
        更新値の生成(_value11,_value22,_value1,_value2,X,Y),
        assertz(hoge(_key,X,Y)),
        R = [],!.
'複数の行のそれぞれ狙った項目だけを一度に更新する。変えたいトコだけ変えて、他は現状維持。'(_).

更新値の生成(A,B,A,D,A,B) :- !.
更新値の生成(A,B,C,B,A,B) :- !.
更新値の生成(A,B,C,D,C,D) :- !.