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 に答える