Вы можете сделать это в одном запросе, не применяя фильтрацию к категории, диапазон которой вам неизвестен. Ключом является сортировка по «расстоянию» от вашего идеального значения или идеального диапазона.
Например, если вам известны фиксированные значения (a и b) для категорий A и B, но вы хотите найти значения для категории C, предпочитая значения, наиболее близкие к 'idealC', тогда вы можете сделать
SELECT
A, B, C,... FROM YorData
WHERE
CategoryA=a AND CategoryB=b
ORDER BY abs(C-<idealC>)
Если вам нужна только одна подходящая строка, добавьте «LIMIT 1» к запросу.
Вы можете расширить это, чтобы работать с диапазоном. Чтобы рассматривать диапазон значений для категории C как «идеальный», но также находить строки, которые находятся вне этого, вы изменяете порядок по выражению на
ORDER BY LEAST(C-maxC, minC-C)
(где minC / maxC определяют диапазон значений, которые вас больше всего интересуют.)
Сначала будут созданы строки в пределах диапазона, а затем строки вне диапазона. Как и раньше, вы можете использовать LIMIT 1 для выборки только одной строки.