MySQL“ Between”子句:考虑到包容性
在MySQL查询中使用“ Between”子句时,必须考虑其非-关于最终值的包容性。例如,执行如下查询:
select * from person where dob between '2011-01-01' and '2011-01-31'
将检索出生日期 (DOB) 范围从“2011-01-01”到“2011-01-30”的结果,不包括带有 DOB 的记录'2011-01-31'。
此行为可归因于 MySQL 对“Between”的解释子句作为逻辑表达式,类似于:
(min <= expr AND expr <= max)
为了解释这一点并包含 DOB 为“2011-01-31”的记录,可以通过两种方式修改查询:
方法 1:使用比较运算符
通过使用比较运算符,查询可以显式检查两者上限和下限:
select * from person where dob >= '2011-01-01' and dob <= '2011-01-31'
方法 2:利用 NOT BETWEEN 运算符
或者,可以使用“NOT BETWEEN”运算符排除特定范围同时包含所需的端点:
select * from person where dob NOT BETWEEN '2011-01-02' and '2011-01-30'
以上是MySQL 的 BETWEEN 子句是否包含上限?的详细内容。更多信息请关注PHP中文网其他相关文章!