通过'或'来查询mnesia数据。

时间:2014-10-13 03:30:15

标签: erlang mnesia

SQL: 从y_account中选择帐户,其中id> 5

Mnesia qlc:

F = fun() ->
    Q = qlc:q([E#y_account.account || E <- mnesia:table(y_account), E#y_account.id>5]),
    qlc:e(Q)
    end,
mnesia:transaction(F).

我可以像这样在mnesia中选择数据。 但是如何选择包含&#39;或&#39;的数据,就像这个SQL:

从y_account中选择帐户,其中id> 5或name =&#39; joe&#39;

谢谢, 最好的问候

2 个答案:

答案 0 :(得分:1)

我没有检查是否有更有效的方法,但你可以替换

E#y_account.id>5

(E#y_account.id>5) orelse (E#y_account.name == "joe")

答案 1 :(得分:1)

使用operator or

F = fun() ->
    Q = qlc:q([E#y_account.account ||
        E <- mnesia:table(y_account), (E#y_account.id > 5) or (E#y_account.name == "joe")]),
    qlc:e(Q)
    end,
mnesia:transaction(F).