等待下一个秋

  • Spark
  • Flink
  • Hive
  • 数据仓库
  • ClickHouse
  • 收徒弟
  • Java
    • Spring
    • Mybatis
    • SpringBoot
    • 面试题
  • Python
    • Python基础
    • 爬虫
    • Numpy
    • matplotlib
    • Flask
  • 技术杂谈
    • Linux知识
    • Docker
    • Git教程
    • Redis教程
    • mysql
    • 前端
    • R语言
    • 机器学习
  • 关于我
  • 其它
    • 副业挣钱
    • 资料下载
    • 资料文档
专注于Hadoop/Spark/Flink/Hive/数据仓库等
关注公众号:大数据技术派,获取更多学习资料。
  1. 首页
  2. 技术杂谈
  3. mysql
  4. 正文

MySQL BETWEEN AND实例及边界值问题

2021年10月13日 1807点热度 0人点赞 0条评论

摘要:在本教程中,您将学习如何使用MySQL BETWEEN运算符确定值是否在一个值范围内。

 

MySQL BETWEEN运算符简介

BETWEEN AND判断某字段值是否在给定的范围内。我们经常在SELECT,INSERT,UPDATE和DELETE语句的WHERE子句中使用BETWEEN运算符。

下面说明了BETWEEN运算符的语法:

expr [NOT] BETWEEN begin_expr AND end_expr;

expr 是一个表达式,它用于测试值是否在定义的范围begin_expr 和 end_expr 之间。

expr, begin_expr和end_expr必须具有相同的数据类型。

如果 expr 的值大于或等于(>=)begin_expr 的值并且小于或等于(<=)end_expr 的值则返回 true,否则返回 0 。

在NOT BETWEEN运算符中,如果expr的值小于(<)begin_expr 表达式的值或大于 end_expr 的值则返回 true,否则返回 0 。

如果任何表达式为NULL,则BETWEEN运算符返回NULL值。

如果要指定排除范围,则使用大于(>)和小于(<)运算符。

 

MySQL BETWEEN示例

我们练习一些使用BETWEEN运算符的例子。

 

MySQL BETWEEN与数字示例

请参阅示例数据库中的下products表:

假设你想查找价格在90到100之间的产品,您可以使用BETWEEN运算符。如:

SELECT 
    productCode, productName, buyPrice
FROM
    products
WHERE
    buyPrice BETWEEN 90 AND 100;

结果如下:

您也可以使用大于或等于(>=)和小于或等于(<=)运算符实现相同的结果:

SELECT 
    productCode, productName, buyPrice
FROM
    products
WHERE
    buyPrice >= 90 AND buyPrice <= 100;

要查找购买价格不在20美元和100美元之间的产品,可以使用NOT BETWEEN AND :

SELECT 
    productCode, productName, buyPrice
FROM
    products
WHERE
    buyPrice NOT BETWEEN 20 AND 100;

结果如下:

以上sql语句也可以使用小于(>),大于(>)和逻辑运算符(AND)实现同样的查询结果, 如:

SELECT 
    productCode, productName, buyPrice
FROM
    products
WHERE
    buyPrice < 20 OR buyPrice > 100;

 

MySQL BETWEEN与日期示例

当使用带有日期值的BETWEEN运算符时,为了获得最佳结果,应使用类型强制转换将列或表达式的类型显式转换为DATE类型。

例如,要获取所需日期为01/01/2003至01/31/2003的订单,请使用以下查询:

SELECT orderNumber,
         requiredDate,
         status
FROM orders
WHERE requireddate
    BETWEEN CAST('2003-01-01' AS DATE)
        AND CAST('2003-01-31' AS DATE);

结果如下:

因为日期字段的数据类型是DATE,所以我们使用cast操作符将字符串“2003-01-01”和“2003-12-31”转换为DATE数据类型。

 

MySQL BETWEEN AND边界值问题分析

mysql的sql语句中可以使用between来限定一个数据的范围,例如:

select * from user where userId between 5 and 7;

查询userId为5、6,7的user,userId范围是包含边界值的,也等同如下查询:

select * from user where userId >= 5 and userId <= 7;

很多地方都提到between是给定的范围是大于等第一值,小于第二个值,其实这是不对的。此前我一直也是这么认为,通过实验,结论是包含两边的边界值,如果实在拿不准,可以采用>= 、<=的方式来指定条件。

另外 not  between的范围是不包含边界值


标签: mysql
最后更新:2021年10月13日

等待下一个秋

待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

等待下一个秋

待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

搜一搜
微信
最新 热点 随机
最新 热点 随机
ChatGPT可以做什么 ClickHouse 自定义分区键 ClickHouse数据副本引擎 ClickHouse ReplacingMergeTree引擎 ClickHouse MergeTree引擎 clickhouse简介
第九章-Python3中Web开发框架flask实现分页 docker 安装 wordpress,通过nginx反向代理,绑定域名,配置https Redis 连接命令 MySQL IN运算符实例讲解 子类化ndarray Java入门视频
标签聚合
挣钱 Java 大数据 Python Hive mysql 算法 Flink 书籍 数据仓库 Redis R语言
文章归档
  • 2023年2月
  • 2022年12月
  • 2022年11月
  • 2022年9月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年1月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年1月
  • 2018年12月
  • 2017年5月

©2022 ikeguang.com. 保留所有权利。

鄂ICP备2020019097号-1

鄂公网安备 42032202000160号