[英]How to do an ets table lookup using a secondary key
我有一个具有以下属性的表:
SortCode Index Created
SortCode
是主键, Index
是次键。 给定一个Index
值,我如何获得关联的SortCode
值?
我试过ets:lookup/3
但它只需要一个主键。
在ets
没有二级索引这样的东西。 你可以做:
ets:match
或ets: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),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.