2017-07-06 4 views
0

私は記憶媒体のテーブルを持っています。employeeと言うことができます。名前がEmployeeNameList = ["Erlich", "Richard", "Gilfoyle", "Dinesh"]である従業員レコードをすべて検索する必要があります。 mnesia:selectまたは他の機能を使用してこれを行う方法はありますか? Mnesia のドキュメント以下Erlang mnesiaの "in"クエリの書き方は?

答えて

1

次のようにそれを行うことができます。

get_employees_by_name(NameList) -> 
    MatchHead = #employee{name = '$1', _ = '_'}, 
    Result = '$_' 
    MatchSpec = [ { MatchHead, [{'=:=', '$1', Name}], [Result]} || Name <- NameList ], 
    F = fun() -> 
    mnesia:select(employee, MatchSpec) 
    end, 
    {atomic, Result} = mnesia:transaction(F), 
    Result. 
関連する問題