如何编写遍历表的qlc查询,直到找到第一个匹配的条目?例如,此查询返回表中符合条件的所有条目:
qlc:q([E#stuff.data || E <- mnesia:table(stuff), E#stuff.type == 123]).
如何修改此或qlc:e调用停止并仅返回第一个匹配的条目?这样做的动机是性能 - 我对所有条目都不感兴趣,只是想看一下特定类型的条目是什么样的。
答案 0 :(得分:3)
您需要使用qlc cursor
和qlc:next_answers/2
,请查看qlc:cursor/1中的示例。
它应该看起来像
QH=qlc:q([E#stuff.data || E <- mnesia:table(stuff), E#stuff.type == 123]).
QC = qlc:cursor(QH).
Result=qlc:next_answers(QC, 1). % Only return 1 answer
qlc:delete_cursor(QC).