Возьмите, например, «6» дней. Вы хотите выбрать все скидки, в которых дни в таблице больше, чем ваши 6 (то есть 7 или 10), а затем получить наименьшее (7).
SELECT discount FROM yourTable
WHERE
days >= '6'
ORDER BY days DESC
LIMIT 1
(Как вы сказали, «3» также имеет скидку, я предполагаю, что «4-7» означает , включая 7. В противном случае удалите =
из запроса)
Как уже упоминалось в комментариях, вы должны использовать подготовленные заявления, если можете, поэтому вы должны сделать что-то вроде этого:
SELECT discount FROM yourTable
WHERE
days >= ?
ORDER BY days DESC
LIMIT 1
а затем связать это? в целое число.