所以我将列列为10, 20, 30, 40, 50
,并希望mySQL选择并舍入两个选定范围之间的数字。因此,对于查询BETWEEN 11 AND 32
,我希望在10
和40
之间包含数据。
原样,只使用BETWEEN 11 AND 32
只会获得20-30
之间列出的值。四舍五入到最接近的10也不能缓解这个问题。
答案 0 :(得分:1)
试
BETWEEN (FLOOR(lower/10)*10) AND (CEIL(upper/10)*10)
使用lower和upper作为整数,如11和32,这将导致
(FLOOR(11/10)*10) => (FLOOR(1.1)*10) => 1*10 => 10
(CEIL(32/10)*10) => (CEIL(3.2)*10) => 4*10 => 40
答案 1 :(得分:0)
x BETWEEN y AND z
是(y <= x) AND (x <= z)
的功能等价物。如果您希望记录在指定范围的“外部”,则必须扩大范围,或将范围外的值修改为IN范围。