我正在尝试选择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
我尝试过使用<和>等等。但是,我总是得到两个结果。任何帮助将不胜感激。
答案 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
<强>输出:强>
| 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