2012-09-17 2 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} 
      ], ['$_']}]). 

Cette fonction n'obtenir une liste vide alors que je veux prendre ce disque à faible = < X = < élevé.ets match_object avec spec match

S'il vous plaît aidez-moi. Merci

Répondre

0

Je me trompe, utilisez ets: select à la place.

Mais comment la performance utilise-t-elle matchSpec? Est-ce que tout scan de table?

+1

Oui, la table entière sera analysée pour les données correspondantes. Voir http://www.erlang.org/doc/efficiency_guide/tablesDatabases.html pour plus d'informations. – johlo

+0

Merci pour le conseil. – goofansu