【发布时间】:2017-12-10 20:42:34
【问题描述】:
我有一个记忆表,比如说employee。我需要找到名称在EmployeeNameList = ["Erlich", "Richard", "Gilfoyle", "Dinesh"] 中的所有员工记录。有没有办法使用mnesia:select 或其他函数来做到这一点?
【问题讨论】:
我有一个记忆表,比如说employee。我需要找到名称在EmployeeNameList = ["Erlich", "Richard", "Gilfoyle", "Dinesh"] 中的所有员工记录。有没有办法使用mnesia:select 或其他函数来做到这一点?
【问题讨论】:
遵循Mnesia 的文档 可以这样做:
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.
【讨论】: