Mysql基础教程(07):BETWEEN

MySQL BETWEEN 用法与实例

本文介绍了在 MySQL 数据库中,如何使用 BETWEEN 运算符确定一个值是否介于某两个值之间。

BETWEEN 运算符确定一个值是否介于某两个值之间。BETWEEN 运算符常用于比较数字和日期类型的数据

MySQL BETWEEN语法

BETWEEN 运算符是一个三目运算符,它需要 3 个操作数。下面 BETWEEN 运算符的语法:

sql 复制代码
expression BETWEEN min AND max
expression NOT BETWEEN min AND max

使用说明:

  • expression 可以是一个字段名、值或其他的表达式(比如函数调用、运算等)。
  • min 是范围的最小值(包含)
  • max 是范围的最大值(包含)
  • AND 是一个固定的连接词,用来连接 minmax
  • NOT 是否定运算符,NOT BETWEEN 表达的含义与 BETWEEN 相反。

BETWEEN 运算符相当于是下面写法的简写形式:

sql 复制代码
expression >= min AND expression <= max

NOT BETWEEN 运算符相当于是下面写法的简写形式:

sql 复制代码
expression < min OR expression > max

MySQL BETWEEN运算规则

当字段的值或者给定的值介于 min 和 max 两个值之间时,BETWEEN 运算符返回 1。否则,返回 0

BETWEEN 运算规则如下:

  • 如果左侧的 expression 介于 min 和 max 之间时, BETWEEN 返回 1,否则返回 0。
sql 复制代码
SELECT
    1 BETWEEN 1 AND 3,
    2 BETWEEN 1 AND 3,
    3 BETWEEN 1 AND 3,
    4 BETWEEN 1 AND 3;
sql 复制代码
+-------------------+-------------------+-------------------+-------------------+
| 1 BETWEEN 1 AND 3 | 2 BETWEEN 1 AND 3 | 3 BETWEEN 1 AND 3 | 4 BETWEEN 1 AND 3 |
+-------------------+-------------------+-------------------+-------------------+
|                 1 |                 1 |                 1 |                 0 |
+-------------------+-------------------+-------------------+-------------------+
  • 如果 expression, min, max 至少有一个 NULL 时, BETWEEN 运算符的返回 NULL。
sql 复制代码
SELECT
    NULL BETWEEN 1 AND 3,
    1 BETWEEN NULL AND 3,
    1 BETWEEN 1 AND NULL;
sql 复制代码
+----------------------+----------------------+----------------------+
| NULL BETWEEN 1 AND 3 | 1 BETWEEN NULL AND 3 | 1 BETWEEN 1 AND NULL |
+----------------------+----------------------+----------------------+
|                 NULL |                 NULL |                 NULL |
+----------------------+----------------------+----------------------+

MySQL BETWEEN实例

以下SQL 语句使用BETWEEN检索学生年龄位于1920之间的学生:

sql 复制代码
SELECT *
FROM students
WHERE age BETWEEN 19 AND 20;
sql 复制代码
+------------+--------+------+--------+
| student_id | name   | age  | gender |
+------------+--------+------+--------+
|          3 | 李总结 |   19 | 男     |
|          7 | 刘星   |   19 | 女     |
|         10 | 战书   |   19 | 男     |
|         12 | 赵云   |   20 | 男     |
+------------+--------+------+--------+
4 rows in set (0.00 sec)

因为MINMAX的值是包含的,所以查询的实际是学生年龄>=19且<=20之间的。

此 SQL 语句与下面不使用 BETWEEN 的语句的结果相同:

sql 复制代码
SELECT *
FROM students
WHERE age >= 19 AND age <= 20;

NOT BETWEEN

以下 SQL 语句使用 BETWEEN 运算符检索年龄不在1920之间的学生:

sql 复制代码
SELECT *
FROM students
WHERE age NOT BETWEEN 19 AND 20;
sql 复制代码
+------------+--------+------+--------+
| student_id | name   | age  | gender |
+------------+--------+------+--------+
|          1 | 丁一   |   18 | 男     |
|          2 | 解放   |   18 | 男     |
|          4 | 周末离 |   18 | 女     |
|          5 | 谢村花 |   18 | 女     |
|          6 | 周一   |   18 | 女     |
|          8 | 夏雨   |   18 | 男     |
|          9 | 夏天   |   18 | 男     |
|         11 | 周易   |   18 | 女     |
+------------+--------+------+--------+
8 rows in set (0.00 sec)

此 SQL 语句与下面不使用 NOT BETWEEN 的语句的结果相同:

sql 复制代码
SELECT *
FROM students
WHERE age < 19 OR age > 20;

这里,因为students表中没有年龄大于20的学生,所以查询的结果中不包含年龄大于20的学生。

结论

本文通过实例介绍了 MySQL 中 BETWEEN 运算符的语法和用法。 BETWEEN 运算符的用法要点如下:

  • BETWEEN 运算符来测试一个值是否位于一个数值区间或者时间区间内。
  • BETWEEN min AND max 中 min 是区间的最小值,max 是区间的最大值。
  • expression BETWEEN min AND maxexpression >= min AND expression <= max 结果相同。
  • BETWEEN 运算符可以结合 NOT 运算符进行否定操作。
  • expression NOT BETWEEN min AND maxexpression < min OR expression > max 结果相同。

◀️ Mysql基础教程(06):NOT IN

Mysql基础教程(08):LIKE ▶️

相关推荐
morris13144 分钟前
【redis】redis实现分布式锁
数据库·redis·缓存·分布式锁
hycccccch1 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
这个懒人2 小时前
深入解析Translog机制:Elasticsearch的数据守护者
数据库·elasticsearch·nosql·translog
Yan-英杰2 小时前
【百日精通JAVA | SQL篇 | 第二篇】数据库操作
服务器·数据库·sql
NineData3 小时前
NineData云原生智能数据管理平台新功能发布|2025年3月版
数据库
百代繁华一朝都-绮罗生4 小时前
检查是否存在占用内存过大的SQL
数据库·sql
吾日三省吾码4 小时前
Python 脚本:自动化你的日常任务
数据库·python·自动化
CZIDC4 小时前
win11 系统环境下 新安装 WSL ubuntu + ssh + gnome 桌面环境
数据库·ubuntu·ssh
直裾4 小时前
Mapreduce的使用
大数据·数据库·mapreduce
纪元A梦4 小时前
Redis最佳实践——首页推荐与商品列表缓存详解
数据库·redis·缓存