Mysql 从“我的值”中查找最近的列值

Mysql 从“我的值”中查找最近的列值,mysql,sql,database,Mysql,Sql,Database,我需要快速的帮助,可以吗 我需要表中最接近的值。我的表中有“薪资”列,它将有以下值: 10000 20000 45000 50000 60000 70000 and so on. 我有一个值,例如42000。我需要获取最近的行值42000,如果表中有42000,那么我需要相同的42000。您需要按绝对差排序并选择第一行 SELECT * FROM salaries ORDER BY ABS(salary - 42000) ASC LIMIT 0,1; 但是你可能会想到另一个订单或限制条款,因

我需要快速的帮助,可以吗

我需要表中最接近的值。我的表中有“薪资”列,它将有以下值:

10000
20000
45000
50000
60000
70000
and so on.

我有一个值,例如42000。我需要获取最近的行值42000,如果表中有42000,那么我需要相同的42000。

您需要按绝对差排序并选择第一行

SELECT * FROM salaries ORDER BY ABS(salary - 42000) ASC LIMIT 0,1;
但是你可能会想到另一个订单或限制条款,因为两个或两个以上可能有相同的最低最接近工资。

我得到了解决方案: 就在这里

SELECT *,abs((salary-42000)) as near FROM tbl_salary WHERE order by near limit 0,1

感谢所有帮助我的人。

按差异订购。限制1。请为我们添加一个架构以正确回答此问题。对列进行排序并采用类似二进制搜索的方法。从tbl_薪资顺序中选择前1*,由ABS salary-42000@roeb提供,接近我的建议。但TOP仅适用于SQL Server。