sql >> Base de Datos >  >> RDS >> Mysql

Encontrar la coincidencia numérica más cercana en una base de datos a lo que un usuario ha ingresado en php

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

básicamente, tome la diferencia del campo numérico que desea y el valor proporcionado por el usuario, luego ordene por diferencia ascendente y luego devuelva la primera fila.

Entonces, una coincidencia exacta tendría una diferencia de 0 y saldría primero. Y luego elija el que sea "más cercano" si no hay una coincidencia exacta.