mysql中between的用法

本文深入介绍了SQL中的BETWEEN关键字,解析了其语法和用法,包括如何进行范围查询,以及与NOT BETWEEN的区别。通过实例展示了如何在实际数据库查询中应用BETWEEN,提高查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

between的介绍

日常sql查询过程中经常要筛选某个属性或某个表达式结果的某个范围内的数据,这个时候我们经常通过 > 或者 < 来进行筛选,有的时候再项目中由于 >< 经常会和起始标志符冲突,所以需要进行转义,这个过程很容易出现一些问题,其实在sql的关键字中,有一个非常实用的关键字可以进行范围查询,这个关键字就是between,接下来我们就来深入的了解一下between的用法。

between的语法

between关键字是一个逻辑操作符用来筛选指定属性或表达式某一范围内或范围外的数据。between关键字常用在where关键字后与selectupdatedelete共同使用。between的使用语法如下:

expr [NOT] BETWEEN begin_expr AND end_expr;

在整个表达式中,expr表示的是一个单一的属性或者是一个计算的表达式,整个表达式中的三个参数 expr、begin_expr、end_expr 必须是同一种数据类型。

  • between筛选的是 expr >= begin_expr并且 expr <= end_expr 的数据,如果不存在则返回的是0;
  • not between筛选的是 expr < begin_expr或者 expr > end_expr 的数据,如果不存在则返回的是0;
  • 如果 expr 返回的是 NULL,则between 也返回的是null (暂未验证)

between的用法

假如我们有一张数据库表如下所示

CREATE TABLE `t_income` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '唯一自增id',
  `income_date` varchar(255) NOT NULL COMMENT '收入年月',
  `amount` float NOT NULL COMMENT '收入金额',
  `target_amount` float NOT NULL DEFAULT '0' COMMENT '目标收入',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)  ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

  • 查询表中amount>=10并且amount<=50的数据
select * from t_income where amount between 10 and 50;

  • 查询表中amount 和 target_amount 总和 >=100并且<=500的数据
select * from t_income where (amount + target_amount) between 100 and 500;

  • 查询表中create_time 在 2019-01-01 到 2019-09-01 这个日期范围内的数据
select * from t_income where create_time between cast('2019-01-01' as DATE) and cast('2019-09-01' as DATE);

  • 查询表中amount < 10 或者 amount > 50 的数据
select * from t_income where amount not between 10 and 50;

between的总结

通过上面的讲解,我们现在应该已经基本的学会了between的用法,但是如果在开发中,我们要查询某个属性大于某一个值 并且小于某个值的话,我们就只能用 > and <

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有梦想的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值