如何编写遍历表直到找到第一个匹配条目的qlc查询?例如,此查询返回表中符合条件的所有条目:

qlc:q([E#stuff.data || E <- mnesia:table(stuff), E#stuff.type == 123]).


如何修改此代码或qlc:e调用以停止并仅返回第一个匹配条目?这样做的动机是性能-我对所有条目都不感兴趣,只是想看看特定类型的条目的外观。

最佳答案

您需要使用qlc cursorqlc: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).

关于erlang - 在第一个匹配条目处停止erlang QLC查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18829801/

10-12 01:26