好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MySQL BETWEEN AND实例及边界值问题

摘要 :在本教程中,您将学习如何使用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 BETWEEN AND实例及边界值问题的详细内容...

  阅读:36次

上一篇

下一篇

第1节:MySQL AND运算符实例讲解    第2节:MySQL BETWEEN AND实例及边界值问题    第3节:MySQL DISTINCT去除及多字段实例讲解    第4节:MYSQL having实例及与where的区别    第5节:MySQL INNER JOIN多表连接及优化效率实例分析    第6节:MySQL group by having与聚合函数count sum使用实例讲解    第7节:MySQL LIKE通配符(%,_)及escape实例讲解    第8节:MySQL OR运算符使用实例优先级介绍    第9节:MySQL IN运算符实例讲解    第10节:MySQL LIMIT实例及取前N行数据    第11节:MySQL IS NULL判断值是否为NULL及优化详解    第12节:MySQL ORDER BY实例及性能优化分析    第13节:mysql order by如何实现自然排序    第14节:MySQL LEFT JOIN实例及优化分析    第15节:mysql 下载与安装    第16节:MySQL示例数据库下载    第17节:如何使用MySQL Workbench将样本数据库导入到MySQL数据库服务器    第18节:MySQL SELECT语句实例讲解    第19节:MySQL WHERE子句使用实例讲解    第20节:Mysql入门教程    第21节:MySQL Alias表别名、字段别名使用实例    第22节:MySQL自连接实例讲解