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
<や>などを使用してみましたが、常に2つの結果が得られます。どんな助けでも大歓迎です。
だから、あなたは下限を包括的にしたくありませんよね?
SET @value = 2;
SELECT * FROM table WHERE from > @value AND @value <= to;
あなたはこれを試すことができます:
SELECT * FROM `table` WHERE 2 BETWEEN `from` AND `to`
クエリ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
の行は返されません。
これも試すことができます、
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