Yes, you are correct. We can have query solution for it. Like:
{exp:query limit="9" paginate="bottom" sql="SELECT exp_channel_titles.entry_id AS entryID FROM exp_channel_titles
LEFT JOIN exp_channel_data ON exp_channel_titles.entry_id=exp_channel_data.entry_id
WHERE exp_channel_titles.entry_id BETWEEN '[entry_id_from]' AND '[entry_id_to]'
AND exp_channel_data.field_id_1='no'
AND exp_channel_data.field_id_2 >= 2500
ORDER BY entry_date DESC"}
{if no_results}
[NO ENTRY]
{/if}
{exp:channel:entries channel="{channel_name}" entry_id="{entryID}"}
[CHANNEL ENTRY CONTENT]
{/exp:channel:entries}
[HERE IS THE PAGINATION FROM THE SQL]
{paginate}
[PAGINATION URLS]
{/paginate}
{/exp:query}
In above query you can see “field_id_1” and “field_id_2” should have custom field id in place of 1 and 2. You need to put [entry_id_from] and [entry_id_to] as par need.
Please Note: I didn’t test above code.
I hope, it would help you.
Best Regards,