如何按最近的浮点值排序

时间:2013-06-07 19:21:04

标签: mysql

我的MySQL表:

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

float 5.4554

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

的NUMBER顺序排列

示例输出:

5.123
4.233
1.233 
1.146

SQL FIDDLE

3 个答案:

答案 0 :(得分:4)

尝试:

order by abs(numer - float)

答案 1 :(得分:2)

select *
from Table1
order by SUBSTRING(NUMER,
          Locate(NUMER ,'.', 1)+3,
                          length(NUMER))

<强> SQL FIDDLE

31 尝试后我终于得到了答案。

答案 2 :(得分:1)

SET @floatValue := 5.4554;
SELECT   id, NUMER
FROM     Table
ORDER BY ABS(@floatValue - NUMER)

按两者之间的差异排序。 5.4554-5.1230.3,其中5.4554-1.146为〜4。 (虽然我认为您的演示可能已关闭,但1.233之前不应1.146?)

无论如何,example

screenshot of query