Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Encontrando a correspondência numérica mais próxima em um banco de dados para o que um usuário inseriu em php

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

basicamente, pegue a diferença do campo numérico que você deseja e o valor fornecido pelo usuário, classifique pela diferença crescente e retorne a primeira linha.

Portanto, uma correspondência exata teria uma diferença de 0 e sairia primeiro. E, em seguida, escolha o que for "mais próximo" se não houver correspondência exata.