select(Tab, Spec) -> [Match]
select(Tab, Spec, LockKind) -> [Match]
類型:
Tab = table()
Spec = ets:match_spec()
Match = term()
LockKind = lock_kind()
匹配表中的對象Tab
用一個match_spec
如中所述集:選擇/3。可選鎖read
或者write
可以作為第三個參數給出。默認為read
。返回值取決於MatchSpec
.
請注意,為了獲得最佳性能,應在同一事務中對該表執行任何修改操作之前使用select
。也就是說,不要在 select
之前使用 write
或 delete
。
最簡單的形式,match_spec
如下所示:
MatchSpec = [MatchFunction]
MatchFunction = {MatchHead, [Guard], [Result]}
MatchHead = tuple() | record()
Guard = {"Guardtest name", ...}
Result = "Term construct"
如需完整說明select
,見ERTS用戶指南和埃特斯STDLIB 中的手冊頁。
例如,要在表 Tab
中查找所有 30 歲以上男性的姓名:
MatchHead = #person{name='$1', sex=male, age='$2', _='_'},
Guard = {'>', '$2', 30},
Result = '$1',
mnesia:select(Tab,[{MatchHead, [Guard], [Result]}]),
相關用法
- erlang select(Table, MatchSpec)用法及代碼示例
- erlang select_replace(Table, MatchSpec)用法及代碼示例
- erlang select_reverse(Continuation)用法及代碼示例
- erlang self用法及代碼示例
- erlang setelement(Index, Tuple1, Value)用法及代碼示例
- erlang setopts(Socket, Options)用法及代碼示例
- erlang setopts(Opts)用法及代碼示例
- erlang send_request(Node, Module, Function, Args)用法及代碼示例
- erlang set_token(Token)用法及代碼示例
- erlang seq(From, To)用法及代碼示例
- erlang seed(A1, A2, A3)用法及代碼示例
- erlang sin用法及代碼示例
- erlang str用法及代碼示例
- erlang substr用法及代碼示例
- erlang sort用法及代碼示例
- erlang sublist用法及代碼示例
- erlang sum用法及代碼示例
- erlang split_binary用法及代碼示例
- erlang spawn用法及代碼示例
- erlang spawn on Node用法及代碼示例
- erlang spawnlink用法及代碼示例
- erlang safe_fixtable(Table, Fix)用法及代碼示例
- erlang split(Filename)用法及代碼示例
- erlang size(Item)用法及代碼示例
注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 select(Tab, Spec) -> [Match]。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。