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
@约翰——谢谢你的确认。