Mysql:选择两列之间的值

Nic*_*oie 14 mysql sql between

我正在尝试选择2列之间的值.这是我的数据集

id    from    to    price
1     0.00    2.00  2.50
2     2.00    3.00  3.00
3     3.00    4.00  4.50
Run Code Online (Sandbox Code Playgroud)

我的目标,如果我的值为2,则选择ID为1的行(在from和to之间).所以这是我正在使用的查询:

select * from table where 2 between from and to;
Run Code Online (Sandbox Code Playgroud)

以下是MySQL在执行此查询时返回的结果:

id    from    to    price
1     0.00    2.00  2.50
2     2.00    3.00  3.00
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果如下:

id    from    to    price
1     0.00    2.00  2.50
Run Code Online (Sandbox Code Playgroud)

我尝试过使用<和>等等.但是,我总是得到两个结果.任何帮助将非常感激.

Jul*_*ima 21

你可以试试这个:

SELECT * FROM `table` WHERE 2 BETWEEN `from` AND `to`
Run Code Online (Sandbox Code Playgroud)

  • 我不明白为什么这会降低选票,这是一个非常有效的答案! (2认同)

Vik*_*dor 13

那么,你不希望下限包容,对吗?

SET @value = 2;
SELECT * FROM table WHERE from > @value AND @value <= to;
Run Code Online (Sandbox Code Playgroud)


Red*_*ter 7

查询1:

select * 
from `table` 
where `from` < 2 and `to` >= 2
Run Code Online (Sandbox Code Playgroud)

SQL小提琴示例

输出:

| ID | FROM | TO | PRICE |
--------------------------
|  1 |    0 |  2 |     3 |
Run Code Online (Sandbox Code Playgroud)

查询2:

select * 
from `table` 
where `from` < 2.001 and `to` >= 2.001
Run Code Online (Sandbox Code Playgroud)

输出:

| ID | FROM | TO | PRICE |
--------------------------
|  2 |    2 |  3 |     3 |
Run Code Online (Sandbox Code Playgroud)

注意:使用此方法,0除非您修改查询以适应该值,否则将不会返回值.