2013-08-02 62 views
2
+------------+---------+ 
| Column1 | Column2| 
+------------+---------+ 
|  25  | 5 | 
|  30  | 5 | 
|  35  | 5 | 
|  40  | 5.5 | 
|  45  | 5.5 | 
| 100  | 6 | 
+------------+---------+ 

讓說,我有表像上面。MySQL的GET值

我想根據Column1範圍內的數字來獲取Column2值。

例如: 如果輸入端24或更小,則返回5 如果我的輸入是30或32,應該返回箱5 如果我的輸入是57,如果輸入端110返回我5.5 ,返回6

什麼SQL我應該運行得到的價值?

+0

使用情況要做到這一點 – 2013-08-02 10:47:00

+1

@ od3n你可以請告訴什麼的列1至指定列2 – zxc

+0

值@小於25,25到29.99,30到39.99,40到44.99,45到99.99,100或更多 – od3n

回答

5

這將給最接近的結果。不太清楚,如果這是你想要

select column2 
from your_table 
order by abs($input - column1) 
limit 1 
+0

我不確定爲什麼我不能在表格中得到正確的值。 25 | 4.3,30 | 4.5,35 | 4.7,40 | 4.7,45 | 5.3,50 | 5.5,55 | 5.7,100,6.我的輸入是34.它返回4.7。正確的值是4.5 – od3n

1

一個解決方案是什麼:

SELECT 
    Column2 
FROM 
    TableName 
WHERE 
    Column1 >= $number ORDER BY Column1 ASC LIMIT 0,1