Mysql:选择两列之间的值

时间:2012-10-10 17:21:06

标签: 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

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

select * from table where 2 between from and to;

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

id    from    to    price
1     0.00    2.00  2.50
2     2.00    3.00  3.00

我正在寻找的结果如下:

id    from    to    price
1     0.00    2.00  2.50

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

4 个答案:

答案 0 :(得分:20)

你可以试试这个:

SELECT * FROM `table` WHERE 2 BETWEEN `from` AND `to`

答案 1 :(得分:13)

所以,你不希望下限是包容性的,对吗?

SET @value = 2;
SELECT * FROM table WHERE from > @value AND @value <= to;

答案 2 :(得分:7)

查询1:

select * 
from `table` 
where `from` < 2 and `to` >= 2

SQL Fiddle Example

<强>输出:

| ID | FROM | TO | PRICE |
--------------------------
|  1 |    0 |  2 |     3 |

查询2:

select * 
from `table` 
where `from` < 2.001 and `to` >= 2.001

<强>输出:

| ID | FROM | TO | PRICE |
--------------------------
|  2 |    2 |  3 |     3 |

注意:使用这种方法,除了修改查询以适应该值之外,您将不会获得值0的任何行。

答案 3 :(得分:1)

你也可以试试这个,

select * from table where (from-to) = 2  // if you want the exact distance to be 2 
select * from table where (from-to) >= 2 // Distance more than 2