我有一个包含以下属性的表:
SortCode Index Created
SortCode
是主键,Index
是辅助键。给定Index
值,如何获取关联的SortCode
值?
我尝试了ets:lookup/3
,但它只需要一个主键。
答案 0 :(得分:3)
ets
中没有二级索引。你可以这样做:
ets:match
或ets:select
或ets
表或mnesia
添加(辅助)索引。答案 1 :(得分:-1)
加入Hynek -Pichi- Vychodil所说的话。
除了密钥之外,还没有使用其他属性来获取记录的解决方案。可以使用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),