Mysql
 sql >> Base de données >  >> RDS >> Mysql

Trouver la correspondance numérique la plus proche dans une base de données de ce qu'un utilisateur a saisi dans php

SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1

en gros, prenez la différence entre le champ numérique que vous voulez et la valeur fournie par l'utilisateur, puis triez par différence croissante, puis renvoyez la première ligne.

Ainsi, une correspondance exacte aurait une différence de 0 et sortirait en premier. Et puis choisissez celui qui est "le plus proche" s'il n'y a pas de correspondance exacte.