このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1274791771/582
#  すいません、全フィールドに(2語の検索語でANDもしくはORで)検索をかけたい場合 
#  どうかくのでしょうか?mysql でPHP で書いています。 
#  (2語をANDで検索したい場合) 
#  SELECT * FROM table WHERE name  LIKE '%$word1%' AND  name LIKE '%$word2%' 
#  SELECT * FROM table WHERE address  LIKE '%$word1%' AND  address LIKE '%$word2%' 
#  SELECT * FROM table WHERE tel  LIKE '%$word1%' AND  tel LIKE '%$word2%' 
#             ・ 
#             ・ 
#   
#  みたいに全フィールド分並べるとダブりがあるし 
#  SELECT * FROM table WHERE *  LIKE '%$word1%' AND * LIKE '%$word2%' 
#  とやったら怒られました 
#   

'全フィールドに(2文字列の検索文字列でANDもしくはORで)検索をかけたい場合どうかくのでしょうか?'(_検索文字列_1,_検索文字列_2,L) :-
        findall(_,テーブル定義(table,_id,_フィールド名),L),
        P =.. [_テーブル名|L],
        call(P),
        全フィールドに対して検索する(_検索文字列_1,_検索文字列_2,_ANDかOR,L).

全フィールドに対して検索する(_検索文字列_1,_検索文字列_2,_,[]) :- !.
全フィールドに対して検索する(_検索文字列_1,_検索文字列_2,'AND',[_値|R]) :-
        sub_atom(_値,_,_,_,_検索文字列_1),
        sub_atom(_値,_,_,_,_検索文字列_2),
        全フィールドに対して検索する(_検索文字列_1,_検索文字列_2,'AND',R).
全フィールドに対して検索する(_検索文字列_1,_検索文字列_2,'OR',[_値|R]) :-
        (   sub_atom(_値,_,_,_,_検索文字列_1);
            sub_atom(_値,_,_,_,_検索文字列_2)),
        全フィールドに対して検索する(_検索文字列_1,_検索文字列_2,'AND',R).