このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1316769778/334
#  mysqlで質問です。 
#   
#  | col1 | col2 | col3 | col4 | col5 | col6 | 
#   
#  |   3  |   1  |   0  |   5  |   4  |  12  | 
#   
#  |   2  |   5  |   6  |   0  |   1  |   8  | 
#   
#  のようなテーブルで 
#  複数の条件、例えばA,B,C,D,E,Fで 
#  このうちの3つの条件がいずれかでもあえば 
#  そのレコードを取得するというような 
#  クエリは可能でしょうか。 
#   
#  イメージ的にはLOTO6で5等に該当するレコードは全て取得するといった 
#  感じなのですが。 
#   
# 
# 

'複数の条件、例えばA,B,C,D,E,Fでこのうちの3つの条件がいずれかでもあえばそのレコードを取得する'([[_colA,A],[_colB,B],[_colC,C],[_colD,D],[_colE,E],[_colF,F]],_col1,_col2,_col3,_col4,_col5,_col6) :-
        テーブル(_col1,_col2,_col3,_col4,_col5,_col6),
        '3つの条件がいずれかでもあえば'([[_colA,A],[_colB,B],[_colC,C],[_colD,D],[_colE,E],[_colF,F]],[_col1,_col2,_col3,_col4,_col5,_col6]).

'3つの条件がいずれかでもあえば'(_条件ならび,_列ならび) :-
        条件の組合せ(_条件ならび,_3つの条件),
        条件判定(_3つの条件,_列ならび),!.

条件の組合せ(_条件ならび,_3つの条件) :-
        組合せ(_条件ならび,3,_3つの条件).

条件判定([],_) :- !.
条件判定([[_col,_条件]|R],_列ならび) :-
        member(_col,_列ならび),
        call(_条件),
        条件判定(R,_列ならび).

% 
% 条件ならびの書き方は 
% A,B,C,D,E,Fの中にそれぞれ_colA,_colB,_colC,_colD,_colE,_colFを含ませる。
%