根据距离给定值最近的值从数据库中查找行
问题描述:
我想根据距离给定值最近的值从数据库中查找表格行。根据距离给定值最近的值从数据库中查找行
我有以下数据
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
为8.06,它应该返回
Id Rate Fat
2 20 8.10
用于8.35它应该返回8.34而不是8.36(尽管不同的是相同的,应该优先考虑较低的值,如果不同的是一样的)
Id Rate Fat
5 60 8.34
答
在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
+1你猜对了。 – Johan 2011-06-17 09:38:43
@Johan - 感谢您的确认。 – 2011-06-17 09:41:37