...
Sql

mysql中between的用法

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 < 啦

  • windows cmd命令行隐藏运行 tp5 BETWEEN 查询时间间隔
    biu biu biu
    Navicat Premium 15破解 windows Navicat Premium 注册出现 Rsa Public Key not Find... Uninstall Tool 绿色版下载 微信网页版发送消息代码 windows cmd控制台隐藏运行 thinkphp 伪静态 NGINX IIS Apache