このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1274791771/177
#  質問させてください。 
#   
#  ・DBMS名とバージョン 
#  MySQL 5.0.27-1 
#   
#  ・テーブルデータ 
#  DATE    | DATA 
#  ------------+---------- 
#  2010-06-01 | aaa 
#  2010-06-02 | bbb 
#  2010-06-03 | ccc 
#  2010-06-04 | ddd 
#  2010-06-05 | eee 
#  2010-06-06 | fff 
#  2010-06-07 | ggg 
#   
#  ・欲しい結果 
#  最新3件を昇順で。 
#  DATE    | DATA 
#  ------------+---------- 
#  2010-06-05 | eee 
#  2010-06-06 | fff 
#  2010-06-07 | ggg 
#   
#  ・説明 
#  select DATE, DATA from TABLE order by DATE desc limit 3; 
#  とすれば、最新3件を降順で取得できますが、 
#  できれば降順でなく昇順で最新3件を取得したいです。 
# 
# 

'DATEの最新3件を昇順で取得する'(L) :-
        findsort([DATE],テーブル(DATE,DATA),L1),
        length(L,3),
        append(_,L,L1).

findsort(_鍵ならび,P,_解ならび) :-
        P =.. [F|L1],
        append(_鍵ならび,L1,L2),
        findall(L2,P,L3),
        sort(L3,L4),
        findall(L1,member(L2,L4),_解ならび).