SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1
về cơ bản, hãy lấy sự khác biệt của trường số bạn muốn và giá trị do người dùng cung cấp, sau đó sắp xếp theo sự khác biệt tăng dần rồi trả về hàng đầu tiên.
Vì vậy, một trận đấu chính xác sẽ có hiệu số 0 và xuất hiện trước. Và sau đó chọn cái nào là "gần nhất" nếu không có kết quả khớp chính xác.