如何从mysql返回最近的值

时间:2015-03-13 08:06:05

标签: php mysql

如果我有一张类似

的桌子
ID     VALUE
1      1000
2      1500
3      2000

我要选择value='1999'它会返回第3行。如果我选择1200,它将返回第1行。我怎么在PHP中做到这一点?

4 个答案:

答案 0 :(得分:4)

这是一个很好的问题:)

SELECT VALUE FROM mytable ORDER BY ABS(VALUE-1999) LIMIT 1

当然,1999年将是真实的变量。

<强> Fiddle

答案 1 :(得分:1)

select id, value, ABS(1999 - value) as delta
from YOUR_TABLE
order by delta
LIMIT 1

这将计算您的请求与表格中的所有数据之间的差值,并按最小的增量排序..因此,如果您将请求限制为1,您将拥有最近的行!

希望它会对你有所帮助!

答案 2 :(得分:0)

我没有尝试过但我认为它应该可行

$query="SELECT abs(value-'".$_REQUEST['myValue']."') as num,value from table order by num asc limit 1";

答案 3 :(得分:0)

select id, value, ABS(1999 - value) as number
from tablename
order by number
limit 1