Domanda

How do I write a qlc query that traverses table until it finds the first matching entry? For instance, this query returns all entries in the table that match criteria:

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

How to modify this or the qlc:e call to stop and return only the first matching entry? The motivation for this is performance - I'm not interested in all entries, just want to take a look at how entries of specific type look like.

È stato utile?

Soluzione

You need to use a qlc cursor and qlc:next_answers/2, take a look at the example in qlc:cursor/1. It should look something like

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).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top