このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1252492296/960
#  ID|A|B|C|  
#  ---------  
#  1 |1|2|3|  
#  2 |3|4|5|  
#  3 |7|8|9| (テーブルFOO)  
#   
#  select FOO.ID,FOO.C from FOO,(select 1 AS EXPR) AS A  
#  where FOO.A = A.EXPR or FOO.B = A.EXPR or FOO.C = A.EXPR;  
#   
#  こんなかんじで得たCの内容を1のところにセットして  
#  該当するIDとCを全てリストアップするSQLはどう書けばよいでしょうか?  
#  MySQL 5.0.67です。ストアドの作成権限はないです。  
# 
# 

'A,B,Cいずれかに1がある行の1のところにCをセットした行'(ID,A1,B1,C) :-
    'FOO'(ID,A,B,C),
    '1のところをCの値に置換'(A,B,C,A1,B1).

'1のところをCの値に置換'(A,B,1,A,B) :- !.
'1のところをCの値に置換'(1,1,C,C,C) :- !.
'1のところをCの値に置換'(1,B,C,C,B) :- !.
'1のところをCの値に置換'(A,1,C,A,C) :- !.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'A,B,Cいずれかに1がある行の1のところにCをセットした行'(ID,A1,B1,C) :-
    'FOO'(ID,A,B,C),
    '1のところをCの値に置換'(A,B,C,A1,B1).

'1のところをCの値に置換'(A,B,1,A,B) :- !.
'1のところをCの値に置換'(1,B,C,C,B1) :- '1のところをCの値に置換の一'(C,B,C,C,B1),!.
'1のところをCの値に置換'(A,1,C,A1,C) :- '1のところをCの値に置換の一'(A,C,C,A1,C),!.


'1のところをCの値に置換の一'(1,B,C,C,B1) :- '1のところをCの値に置換の一'(C,B,C,C,B1),!.
'1のところをCの値に置換の一'(A,1,C,A1,C) :- '1のところをCの値に置換の一'(A,C,C,A1,C),!.
'1のところをCの値に置換の一'(A,B,C,A,B).