| id | start | end |
| 1 | 10 | 1000 |
| 2 | 100 | 125 |
| 3 | 50 | 3000 |
select t.id from ranges t
where &value between t.start and t.end -- сначала отсекаем диапазоны, в которые точно не попадаем
order by t.end - t.start -- определяем "наиболее точный" диапазон как наименьший удовлетворяющий и сортируем по нему в порядке возрастания.