0

私はこのテーブルの人を持っています

-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
4

1 に答える 1

1

格納されているタプルを注文するmnesiaには、次のいずれかを行う必要があります。

また

  • すべてのレコードを読み取り、 の外側で並べ替えますmnesia

例えば:

Select = [{#person{_ = '_'}, [], ['$_']}],
Sorted = lists:sort(mnesia:dirty_select(person, Select)),
erlang:hd(lists:reverse(Sorted)).

idそれはすべてのレコードを取得し、それらをタプルとして並べ替えます (がレコードの最初の要素であることを考えると、これで十分です。lists:sort/2を使用せず、並べ替え関数を指定する必要があります)。次に、リストを逆にして最初の要素を返します ( Erlang では、リストの最後の要素を返すよりも、反転して最初の要素を取得する方が高速です)。

于 2013-02-21T14:18:13.050 に答える