【问题标题】:How to write "in" query for Erlang mnesia?如何为 Erlang mnesia 编写“in”查询?
【发布时间】:2017-12-10 20:42:34
【问题描述】:

我有一个记忆表,比如说employee。我需要找到名称在EmployeeNameList = ["Erlich", "Richard", "Gilfoyle", "Dinesh"] 中的所有员工记录。有没有办法使用mnesia:select 或其他函数来做到这一点?

【问题讨论】:

    标签: database erlang mnesia


    【解决方案1】:

    遵循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. 
    

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 2013-05-20
      • 2017-03-25
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多