MySQL中between and的基本用法操作方法
BETWEEN AND操作符可以用于数值、日期
等类型的字段,包括边界值
。
一、between and语法
MySQL中的BETWEEN AND
操作符用于在两个值之间选择数据,包括边界值
。其基本语法如下:
[NOT] BETWEEN 取值1 AND 取值2
其中:
- NOT:可选参数,表示指定范围之外的值。如果字段值不满足指定范围内的值,则这些记录被返回。
- 取值1:表示范围的起始值。
- 取值2:表示范围的终止值。
使用场景:
between…and的使用一般有两种情况,一个是数值范围
,一个是时间范围
。
当查询时间范围时要注意可能会遇到时间精度问题,具体参考下面示例。
二、使用示例
数据准备
create table user( id int NOT NULL auto_increment primary key comment '主键id', `name` varchar(10) NULL comment '姓名', age int NULL comment '年龄', salary int NULL comment '工资', create_time datetime comment '创建时间戳' ); insert into user(name,age,salary,create_time) values ('张三',23,100,'2024-10-29 10:01:22'), ('李四',24,200,'2024-10-30 09:44:22'), ('王五',25,300,'2024-10-30 10:01:22'), ('赵六',26,400,'2024-10-31 07:01:23');
表数据如下
2.1、between and数值查询
between…and…是支持数值查询的,当字段类型是数值时 between A and B等同于>=A and <=B
当between and用于数值查询时,常用于字段类型为int、decimal等。
-- 查询用户表中年龄在24到25之间的用户 select * from user where age between 24 and 25; 等同于 select * from user where age >= 24 and age <= 25;
查询结果如下:
2.2、between and时间范围查询
注意:
- 当日期字段为date类型时,即时间格式为yyyy-MM-dd, between ‘2024-10-29’ and ‘2024-10-30’ 相当于>=‘2024-10-29’ and <=‘2024-10-30’
- 当日期字段为datetime、timestamp类型时,即时间格式为yyyy-MM-dd HH:mm:ss,between ‘2024-10-29’ and ‘2024-10-30’ 相当于>=‘2024-10-29 00:00:00’ and <=‘2024-10-30 00:00:00’。所以
当between and对datetime、timestamp类型查询时,一定要注意手动拼接时分秒
,否则查询数据可能不符合预期。
先上一个错误示例:对datetime类型查询不带时分秒
-- 查询用户表中创建时间在2024-10-29到2024-10-30之间的数据 select * from user where create_time between '2024-10-29' and '2024-10-30'; 等同于 select * from user where create_time >= '2024-10-29 00:00:00' and create_time <= '2024-10-30 00:00:00';
查询结果:
从上面示例可以看出,还有两条数据时间是在2024-10-30日范围内,但是并没有被查询出来。
所以需要注意:当between and对datetime、timestamp类型查询时,一定要注意手动拼接时分秒
,否则查询数据可能不符合预期。
正确示例
-- 查询用户表中创建时间在2024-10-29到2024-10-30之间的数据 select * from user where create_time between '2024-10-29 00:00:00' and '2024-10-30 23:59:59'; 等同于 select * from user where create_time >= '2024-10-29 00:00:00' and create_time <= '2024-10-30 23:59:59';
查询结果:
2.3、not between and示例
not between and表示指定范围之外的值。not between A and B相当于 < A or >B。
示例:查询年龄不在24到25之间的用户
-- 查询用户表中年龄不在24到25之间的用户 select * from user where age not between 24 and 25; 等同于 select * from user where age < 24 or age > 25;
查询结果如下:
到此这篇关于MySQL中between and的基本用法的文章就介绍到这了,更多相关mysql between and用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
mysql通过group by分组取最大时间对应数据的两种有效方法
日常开发当中,经常会遇到查询分组数据中指定的记录,下面这篇文章主要给大家介绍了关于mysql通过group by分组取最大时间对应数据的两种有效方法,文章通过实例代码介绍的非常详细,需要的朋友可以参考下2022-09-09windows下MySQL 5.7.3.0安装配置图解教程(安装版)
这篇文章主要介绍了windows下MySQL 5.7.3.0安装配置图解教程(安装版),需要的朋友可以参考下2016-04-04MySql中如何使用 explain 查询 SQL 的执行计划
explain命令是查看查询优化器如何决定执行查询的主要方法。这篇文章重点给大家介绍MySql中如何使用 explain 查询 SQL 的执行计划,感兴趣的朋友一起看看吧2018-05-05
最新评论