Php 如何从mysql返回最接近的值

Php 如何从mysql返回最接近的值,php,mysql,Php,Mysql,如果我有一张像这样的桌子 ID VALUE 1 1000 2 1500 3 2000 我要选择value='1999'它将返回第三行。如果我选择1200,它将返回第一行。如何在php中做到这一点?我没有尝试过,但我认为它应该可以工作 $query="SELECT abs(value-'".$_REQUEST['myValue']."') as num,value from table order by num asc limit 1"; 多好的问题:)

如果我有一张像这样的桌子

ID     VALUE
1      1000
2      1500
3      2000

我要选择
value='1999'
它将返回第三行。如果我选择
1200
,它将返回第一行。如何在php中做到这一点?

我没有尝试过,但我认为它应该可以工作

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

当然,1999年将是一个实际变量

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


希望它能帮助你

Hanky正在使用
ABS
函数查找与值1999最近的邻居。恶毒的回答…你得到了一张赞成票!虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
select id, value, ABS(1999 - value) as number
from tablename
order by number
limit 1
select id, value, ABS(1999 - value) as delta
from YOUR_TABLE
order by delta
LIMIT 1
select id, value, ABS(1999 - value) as number
from tablename
order by number
limit 1