0

我的 MySQL 表:

id | NUMER
1  | 1.233
2  | 4.233
3  | 5.123
4  | 1.146

float值为5.4554

我需要从上表中选择最接近我的浮点值的行

示例输出:

5.123
4.233
1.233 
1.146

SQL 小提琴

4

3 回答 3

4

尝试:

order by abs(numer - float)
于 2013-06-07T19:26:00.593 回答
2
select *
from Table1
order by SUBSTRING(NUMER,
          Locate(NUMER ,'.', 1)+3,
                          length(NUMER))

SQL 小提琴

经过31尝试,我终于得到了答案。

于 2013-06-07T19:57:02.413 回答
1
SET @floatValue := 5.4554;
SELECT   id, NUMER
FROM     Table
ORDER BY ABS(@floatValue - NUMER)

只需按两者之间的差异排序。 5.4554-5.123是 ~ 0.3,哪里5.4554-1.146是 ~ 4。(虽然我认为你的演示可能已经关闭,但不应该1.233先来1.146?)

无论如何,例如

查询截图

于 2013-06-07T19:26:19.647 回答