SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1
v zásadě vezměte rozdíl v poli s číslem, které chcete, a hodnotu zadanou uživatelem, pak seřaďte podle rozdílu vzestupně a poté vraťte první řádek.
Přesná shoda by tedy měla rozdíl 0 a vyšla jako první. A pak vyberte ten, který je „nejbližší“, pokud neexistuje přesná shoda.