BETWEEN操作符包含边界值,用于查询介于两个值之间的数据。SELECT * FROM students WHERE score BETWEEN 80 AND 90; 等同于 score >= 80 AND score

在mysql中,BETWEEN 操作符用于选取介于两个值之间的数据范围。这个范围包括边界值,也就是说,起始值和结束值都会被包含在查询结果中。BETWEEN 常用于数字、日期或字符串类型的字段查询,语法简洁且效率较高。
基本语法结构
select 列名 FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;
其中,值1 是范围的下限,值2 是范围的上限。数据库会返回该列值大于等于值1 且小于等于值2 的所有记录。
查询数值范围
比如有一个学生表 students,包含字段 score(成绩),要查询成绩在80到90之间的学生:
SELECT * FROM students WHERE score BETWEEN 80 AND 90;
这条语句等同于:
SELECT * FROM students WHERE score >= 80 AND score
查询日期范围
BETWEEN 特别适合用于日期查询。例如,查询2024年6月1日到2024年6月30日之间注册的用户:
SELECT * FROM users WHERE register_date BETWEEN ‘2024-06-01’ AND ‘2024-06-30’;
确保日期格式正确,通常使用 ‘YYYY-MM-DD’ 格式。如果字段包含时间部分(datetime 类型),建议明确时间范围,避免遗漏数据:
- 使用 ‘2024-06-01 00:00:00’ 到 ‘2024-06-30 23:59:59’
- 或使用 DATE() 函数提取日期部分进行比较
查询字符串范围
BETWEEN 也可用于字符字段。例如,查询姓名在 ‘Alice’ 到 ‘David’ 之间的用户(按字母顺序):
SELECT * FROM users WHERE name BETWEEN ‘Alice’ AND ‘David’;
注意:字符串比较基于字符集的排序规则(collation),通常是字典序。大小写是否敏感取决于字段的 collation 设置。
使用 NOT BETWEEN 排除区间
若要查询不在某个范围内的数据,可使用 NOT BETWEEN:
SELECT * FROM students WHERE score NOT BETWEEN 70 AND 85;
这将返回成绩低于70或高于85的所有记录。
基本上就这些。合理使用 BETWEEN 能让区间查询更清晰高效,尤其在处理连续数据时非常实用。注意边界值和数据类型匹配即可。