2012-09-17 98 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