MySQL BETWEEN

时间:2019-11-20 08:52:04  来源:igfitidea点击:

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

MySQL BETWEEN运算符简介

BETWEEN运算符是一种逻辑运算符,它允许您指定值是否在范围内。
BETWEEN运算符通常用在SELECT,UPDATE和DELETE语句的WHERE子句中。

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

expr [NOT] BETWEEN begin_expr AND end_expr;

expr是要在begin_expr和end_expr定义的范围内进行测试的表达式。
这三个表达式:expr,begin_expr和end_expr必须具有相同的数据类型。

如果expr的值大于或等于begin_expr的值(> =)且小于或等于end_expr的值(<=),则BETWEEN运算符返回true,否则返回零。

如果expr的值小于(<)begin_expr的值或大于(>)end_expr的值,则NOT BETWEEN返回true,否则返回0。

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

如果要指定互斥范围,则可以改用大于(>)和小于(<)运算符。

MySQL BETWEEN运算子范例

让我们通过一些使用BETWEEN运算符的示例进行练习。

1)使用MySQL BETWEEN与数字示例

请参阅示例数据库中的以下产品表:

以下示例使用BETWEEN运算符查找购买价格在90到100之间的产品:

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

此查询使用大于或等于(> =)和小于或等于(<=)运算符,而不是BETWEEN运算符来获得相同的结果:

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

要查找购买价格不在20美元到100美元之间的产品,可以将BETWEEN运算符与NOT运算符组合如下:

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

您可以使用小于(<),大于(>)和逻辑运算符(AND)重写上述查询,如下所示:

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

2)使用MySQL BETWEEN和日期示例

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

下面的示例返回订单的日期为2003年1月1日至2003年3月1日:

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运算符测试值是否在值范围内。