SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1
по принцип вземете разликата между желаното от вас числово поле и предоставената от потребителя стойност, след това сортирайте по нарастваща разлика и след това върнете първия ред.
Така че точното съвпадение ще има разлика от 0 и ще излезе първо. И след това изберете коя от тях е "най-близка", ако няма точно съвпадение.