下面是我的数据库架构.
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)之间from和to.
我知道可以通过此查询实现.
SELECT *
FROM TABLE
WHERE 4 BETWEEN `from` AND `to`
Run Code Online (Sandbox Code Playgroud)
但如何选择值,其中input像15?
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的任何值.
SELECT *
FROM TABLE
WHERE 15 BETWEEN coalesce(`from`,15) AND coalesce(`to`,15);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3494 次 |
| 最近记录: |