2012-09-17 75 views
0
-record(rule, {id, low, high}). 


test_ets() -> 
    ets:new(rule_table,[named_table,public,bag]), 
    ets:insert(rule_table, #rule{id=1, low=2, high=5}), 
    ets:match_object(rule_table, [{'$1',[{'>=', {element, #rule.low, '$1'}, 2}, 
      {'=<', {element, #rule.high, '$1'}, 5} 
      ], ['$_']}]). 

此函数仅获得一个空列表,而我想用低= < X = <高来选择此记录。使用匹配规则匹配match_object

请帮帮我。谢谢

回答

0

我错了,用ets:select代替。

但是如何使用matchSpec的性能?这是全部表扫描吗?

+1

是的,整个表格将被扫描以查找匹配的数据。有关更多信息,请参见http://www.erlang.org/doc/efficiency_guide/tablesDatabases.html。 – johlo

+0

谢谢你的建议。 – goofansu