检查两列之间的输入值

Vij*_*ary 3 mysql sql select

下面是我的数据库架构.

id   from  to    value
1    1     10    5
2    11    NULL  10   -- I have stored 'NULL' for any value GREATER THAN 11
Run Code Online (Sandbox Code Playgroud)

现在,我必须选择value其中input like (4)之间fromto.

我知道可以通过此查询实现.

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

但如何选择值,其中input15

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

在这种情况下,上面的查询将无法工作,因为to列具有null.

UPDATE

如果columen 可以有任何价值,to它将包含null.

现在如果输入值是15,则查询应该返回第2行,因为15 is not between 1 and 10 in 1st row并且15大于11并且to值可以是大于11的任何值.

Flo*_*ita 9

SELECT *
FROM   TABLE
WHERE  15 BETWEEN coalesce(`from`,15) AND coalesce(`to`,15);
Run Code Online (Sandbox Code Playgroud)