BETWEEN操作符用于查询闭区间范围内的数据,包含边界值;其语法为select 列名 FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2,等价于列名大于等于值1且小于等于值2。

在mysql中使用BETWEEN操作符可以方便地查询某个范围内的数据,比如数值、日期或字符串。它包含边界值,也就是“闭区间”,查询结果会包括指定的起始值和结束值。
基本语法
BETWEEN的基本语法如下:
SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;
这条语句会选出列值大于等于“值1”且小于等于“值2”的所有记录。
数值范围查询示例
假设有一个学生表 students,其中有个字段 score 表示成绩,你想查成绩在80到90之间的学生:
SELECT * FROM students WHERE score BETWEEN 80 AND 90;
这等价于:
SELECT * FROM students WHERE score >= 80 AND score <= 90;
日期范围查询示例
如果要查询某段时间内的记录,比如查找2024年6月1日到2024年6月30日之间注册的用户:
SELECT * FROM users WHERE register_date BETWEEN '2024-06-01' AND '2024-06-30';
确保日期格式正确(YYYY-MM-DD),否则可能查不出结果。
字符串范围查询示例
BETWEEN也适用于字符串,按字母顺序比较。例如查询姓名从’A’到’K’开头的用户:
SELECT * FROM users WHERE name BETWEEN 'A' AND 'K';
注意:字符串比较是区分大小写的,取决于字段的排序规则(collation)。建议测试时留意大小写影响。
使用NOT BETWEEN排除范围
如果你想查不在某个范围的数据,可以加NOT:
SELECT * FROM students WHERE score NOT BETWEEN 70 AND 85;
这会返回成绩低于70或高于85的所有学生。
基本上就这些。BETWEEN简洁明了,适合范围筛选,记得边界值是包含的,写条件时不用额外加等于。只要数据类型匹配,用起来很顺手。