我有这个桌子的人
-record(person, {id, firstname, lastname, phone}).
它包含以下值:
12 alen dumas 97888888
15 franco mocci 55522225
13 ali othmani 44444449
我想按ID 订购此表 它应该是这样的:
12 alen dumas 97888888
13 ali othmani 44444449
15 franco mocci 55522225
答案 0 :(得分:1)
要订购存储在mnesia
中的元组,您需要:
ordered_set
的表格(请参阅mnesia:create_table中的选项type
),然后使用mnesia:last或mnesia:dirty_last 或
mnesia
,e.g:
Select = [{#person{_ = '_'}, [], ['$_']}],
Sorted = lists:sort(mnesia:dirty_select(person, Select)),
erlang:hd(lists:reverse(Sorted)).
这将得到所有记录,将它们排序为元组(考虑到id
是记录中的第一个元素,如果不使用lists:sort/2并指定排序函数,则应该足够),然后反转列表并返回第一个元素(在Erlang中,它更快地反转并获取第一个元素而不是返回列表的最后一个元素)。