如何选择在发送的订单中两个用户之间发送的所有邮件?这是风景。
用户A:你好用户B:嗨,那里。用户A:你好吗?
这是我用来在两个用户之间选择消息的代码。
Tab = #pms{from='$1',to='$2',_='_'},
Guard = [{'xor',{'=:=',['$1','$2'],[MyId,Recepient]},{'=:=',['$1','$2'],[Recepient,MyId]}}],
Result = ['$_'],
mnesia:select(pms,[{Tab,Guard,Result}])
结果是这样的:
答:您好, A:你好吗? B:嗨,那里。
消息的顺序混乱了。表类型o是有序集
您需要在表中添加时间戳。 ordered_set
表按期限排序。来自http://erlang.org/doc/man/ets.html1
The ordered_set works on the Erlang term order...
1. Mnesia建立在ETS / DETS之上,因此继承了它的许多功能。