BETWEEN 是 MySQL 中表示闭区间的范围查询语法,等价于“>= 且
BETWEEN 是 MySQL 中用于范围查询的简洁语法,等价于两个条件的组合(>= 且 ),常用于数字、日期、字符串等类型的连续区间筛选。
BETWEEN 的标准写法是:column BETWEEN value1 AND value2,表示列值在 value1 到 value2 之间(含端点)。它等价于:column >= value1 AND column 。
DATETIME)、字符类型(按字典序比较)查出价格在 50 到 200 元之间的商品:
SELECT * FROM products WHERE price BETWEEN 50 AND 200;
等价写法:
SELECT * FROM products WHERE price >= 50 AND price <= 200;
若想排除边界(如只查 51~199),就不能用 BETWEEN,需手动改写为 > 50 AND 。
查 2025 年整年的订单(假设 order_time 是 DATETIME 类型):
SELECT *FROM orders WHERE order_time BETWEEN '2025-01-01' AND '2025-12-31 23:59:59';
⚠️ 注意:如果字段含时间部分,仅写 '2025-12-31' 相当于 '2025-12-31 00:00:00',会漏掉当天其他时间的数据。更安全的做法是用左闭右开:>= '2025-01-01' AND ,但 BETWEEN 本身不支持开区间。
查价格**不在** 100~150 区间的商品:
SELECT * FROM products WHERE price NOT BETWEEN 100 AND 150;
等价于:price 150。适合快速过滤“异常值”或“非主流区间”。
查姓名以 A~M 开头的用户(基于默认字符集排序):
SELECT * FROM users WHERE name BETWEEN 'A' AND 'Mz';
⚠️ 字符串比较依赖排序规则(collation),且 'M' 和 'Mz' 边界需谨慎测试。例如 'Ma'、'Mn' 都满足,但 'Mz' 是为了覆盖所有 M 开头的常见情况(实际建议用 LIKE 'M%' 更直观)。