SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1
pada dasarnya, ambil selisih bidang angka yang Anda inginkan dan nilai yang diberikan pengguna, lalu urutkan berdasarkan selisihnya secara menaik dan kemudian kembalikan baris pertama.
Jadi kecocokan tepat akan memiliki perbedaan 0 dan keluar lebih dulu. Lalu pilih mana yang "paling dekat" jika tidak ada yang sama persis.