当前位置: 代码网 > it编程>数据库>Mysql > ‌MySQL中‌between and的基本用法‌操作方法

‌MySQL中‌between and的基本用法‌操作方法

2024年11月02日 Mysql 我要评论
between and操作符可以用于数值、日期等类型的字段,包括边界值。一、between and语法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用法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • Mysql慢查询日志文件转Excel的方法

    Mysql慢查询日志文件转Excel的方法

    最近公司生产环境需要排查慢sql,导出日志txt文件后排查混乱,查找相关资料后并没有找到方便快捷的格式化处理工具,于是自己编写了一套java读取慢sql日志转为... [阅读全文]
  • MySQL深分页问题四种方案小结

    MySQL深分页问题四种方案小结

    mysql深分页问题:这个问题在实际项目中很常见,当数据量大以后,分页会非常的慢(几年前做过一个调度日志的分页查询,简直没法用)深分页为什么慢前言:n个条件为索... [阅读全文]
  • MySql实现分布式锁详解

    MySql实现分布式锁详解

    mysql实现分布式锁有三种方式1:基于行锁实现分布式锁实现原理首先我们的表lock要提前存好相对应的lockname,这时候多个客户端来执行 select ... [阅读全文]
  • MySQL流程控制语句解读

    MySQL流程控制语句解读

    在mysql中,常见的过程式sql语句可以用在一个存储过程体中。其中包括:if语句、case语句、loop语句、while语句、repeat语句、leave语句... [阅读全文]
  • mysql创建存储的全过程

    mysql创建存储的全过程

    mysql创建存储项目场景mysql 的for循环执行sql语句问题描述在mysql中,没有直接的for循环语句,但你可以使用存储过程中的循环来执行sql语句。... [阅读全文]
  • MySQL复合查询和表的内外连接示例详解

    前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够,未来可能还有多表查询,子查询。1.基本查询回顾查询工资高于500或岗位为manager的雇员,同时还要…

    2024年10月30日 数据库

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com