Mysql 根据最接近给定值的值从数据库中查找行

Mysql 根据最接近给定值的值从数据库中查找行,mysql,sql,database,Mysql,Sql,Database,我想根据最接近给定值的值从数据库中查找表行 我有以下数据 Id Rate Fat 1 10 8.00 2 20 8.10 3 30 8.20 4 40 8.30 5 50 8.34 6 60 8.40 7 50 8.36 假设用户希望使用Fat查找 对于8.0,它应该返回 Id Rate Fa

我想根据最接近给定值的值从数据库中查找表行

我有以下数据

Id  Rate         Fat
1   10           8.00
2   20           8.10
3   30           8.20
4   40           8.30
5   50           8.34
6   60           8.40
7   50           8.36
假设用户希望使用Fat查找

对于8.0,它应该返回

Id  Rate         Fat
1   10           8.00
Id  Rate         Fat
2   20           8.10
对于8.06,它应该返回

Id  Rate         Fat
1   10           8.00
Id  Rate         Fat
2   20           8.10
对于8.35,它应该返回8.34,而不是8.36(虽然差异相同,但如果差异相同,则应优先选择较低的值)


在SQL Server中,您可以这样做

select top 1 *
from T
order by abs(Fat - 8.35), Fat
我猜MySQL的语法是

select *
from T
order by abs(Fat - 8.35), Fat
limit 1

@约翰——谢谢你的确认。