SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1
基本的に、必要な数値フィールドとユーザー指定の値の差を取り、差を昇順で並べ替えてから、最初の行を返します。
したがって、完全一致の差は0になり、最初に出てきます。そして、完全に一致するものがない場合は、「最も近い」ものを選択します。
SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1
基本的に、必要な数値フィールドとユーザー指定の値の差を取り、差を昇順で並べ替えてから、最初の行を返します。
したがって、完全一致の差は0になり、最初に出てきます。そして、完全に一致するものがない場合は、「最も近い」ものを選択します。