Mysql: выбор значений между двумя столбцами

Я пытаюсь выбрать значение между двумя столбцами. Вот мой набор данных

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 (между и от). Итак, вот запрос, который я использую:

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

Я пробовал использовать < и > и т.д. Но я всегда получаю два результата. Любая помощь будет высоко оценена.

Ответ 1

SO, вы не хотите, чтобы нижняя граница была включительной, не так ли?

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

Ответ 2

Вы можете попробовать следующее:

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

Ответ 3

Запрос 1:

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

Пример скрипта SQL

Вывод:

| 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, если вы не измените запрос, чтобы это учесть.

Ответ 4

Вы также можете попробовать это,

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