通过ABS()进行SQL排序

时间:2019-07-05 13:39:45

标签: mysql sql

表_1

 column_1     
    .5          
    1          
    1.5         
    2         
    2.5          
    3           

SELEct column_1 FROM table_1 order by ABS(column_1 - 1.2) limit 1

我想要结果1.5但它显示1 但是,如果我更改值1.3,则显示1.5,但我输入1.2

但是我想在输入1.2时获得1.5的更新值

2 个答案:

答案 0 :(得分:3)

0.5 - 1.2 = (-)0.7 <--- third
1 - 1.2 = (-)0.2 <--- first
1.5 - 1.2 = 0.3 <--- second
2 - 1.2 = 0.8 <--- fourth
2.5 - 1.2 = 1.3 <--- fifth 
3 - 1.2 = 1.8 <--- sixth

答案 1 :(得分:2)

如果您想要1.5,那么您不想在abs(column_1 - 1.2)之前订购。

我可以推测您希望第一个值大于或等于 1.2。如果是这样:

SELECT column_1
FROM table_1 
WHERE column_1 >= 1.2
ORDER BY column_1
LIMIT 1;