我有一个具有以下属性的表:
SortCode Index Created
SortCode
是主键,Index
是辅助键。给定一个Index
值,我如何获得关联的SortCode
值?
我试过ets:lookup/3
了,但它只需要一个主键。
我有一个具有以下属性的表:
SortCode Index Created
SortCode
是主键,Index
是辅助键。给定一个Index
值,我如何获得关联的SortCode
值?
我试过ets:lookup/3
了,但它只需要一个主键。
中没有二级索引之类的东西ets
。你可以做:
ets:match
使用orets:select
进行全扫描ets
表或mnesia
与添加的(二级)索引一起使用。补充一下 Hynek -Pichi- Vychodil 所说的话。
ets 中没有解决方案可以使用除了键之外的其他属性来获取记录。可以使用mnesia:dirty_index_read()
.
如果您只想使用 ets,那么您可以按照上述建议或以下代码进行操作。假设您的记录模式类似于:{"one",1,"27092015"}
键是“一”,但您必须使用 1 获取。
FilterSuspCodeFun = fun ({_,I,_}) when I == 1 -> true ; (_) -> false end,
ListData = ets:tab2list(susp_code),
{SortCode,_,created}= lists:filter(FilterSuspCodeFun,ListData),