このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1274791771/488
#  updateのwhere in句でワイルカードを使いたいのですが、 
#  mysqlで、 UPDATE table SET col='新しいデータ' where col in ('001古%', '003古%'.) としたのですが、 
#  上手く出来ませんでした。 
#   
#  どうしたら出来るのでしょうか。 
# 
# 

% 新しいデータ(新しいデータ).

節の定義順を保って述語を更新したい :-
        findall(_col,retract(table(_col)),L),
        append(_,[A|R],L),
        update_data(A,B),
        assertz(table(B)),
        R = [],!.

update_data(_col,_新しいデータ) :- sub_atom(_col,0,4,_,'001古'),新しいデータ(_新しいデータ),!.
update_data(_col,_新しいデータ) :- sub_atom(_col,0,4,_,'003古'),新しいデータ(_新しいデータ),!.
update_data(_col,col).