如何编写一个遍历表直到找到第一个匹配条目的 qlc 查询?例如,此查询返回表中符合条件的所有条目:
qlc:q([E#stuff.data || E <- mnesia:table(stuff), E#stuff.type == 123]).
如何修改此或 qlc:e 调用以停止并仅返回第一个匹配条目?这样做的动机是性能 - 我对所有条目都不感兴趣,只是想看看特定类型的条目的外观。
您需要使用 qlccursor
和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).