2
+------------+---------+
|    Column1 |  Column2|
+------------+---------+
|     25     |    5    |
|     30     |    5    |
|     35     |    5    |
|     40     |   5.5   |
|     45     |   5.5   |
|    100     |    6    |
+------------+---------+

假设我有上面的表格。

我想根据 Column1 范围内的数字获取 Column2 值。

示例:如果输入 24 或更少,如果我的输入为 30 或 32,则返回 5,如果我的输入为 57,则应返回 5,如果输入 110,则返回 5.5,返回 6

我应该运行什么 sql 来获取值?

4

2 回答 2

5

这将给出最接近的结果。不太确定这是否是您想要的

select column2
from your_table
order by abs($input - column1)
limit 1
于 2013-08-02T10:47:00.827 回答
1

一个解法:

SELECT 
    Column2 
FROM 
    TableName 
WHERE 
    Column1 >= $number ORDER BY Column1 ASC LIMIT 0,1
于 2013-08-02T11:40:21.857 回答