MySQL BETWEEN

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

MySQL BETWEEN 运算符简介

BETWEEN运算符是逻辑运算符,用于指定值是否在范围内。以下是BETWEEN运算符的语法:

value BETWEEN low AND high;Code language: SQL (Structured Query Language) (sql)

如果满足以下条件, BETWEEN运算符将返回 1:

value >= low AND value <= highCode language: SQL (Structured Query Language) (sql)

否则,返回 0。

如果value lowhighNULL ,则BETWEEN运算符将返回NULL

例如,以下语句返回 1,因为 15 介于 10 和 20 之间:

SELECT 15 BETWEEN 10 AND 20;Code language: SQL (Structured Query Language) (sql)

以下示例返回 0,因为 15 不在 20 和 30 之间:

SELECT 15 BETWEEN 20 AND 30;Code language: SQL (Structured Query Language) (sql)

请注意,MySQL 将 1 视为 true,将 0 视为 false。

不在之间

要对BETWEEN运算符求反,可以使用NOT运算符:

value NOT BETWEEN low AND highCode language: SQL (Structured Query Language) (sql)

NOT BETWEEN运算符在以下情况下返回 1:

value < low OR value > highCode language: SQL (Structured Query Language) (sql)

否则,返回 0。

例如,以下语句返回 0,因为 15 不在 10 和 20 之间,则不成立:

SELECT 15 NOT BETWEEN 10 AND 20;Code language: SQL (Structured Query Language) (sql)

实际上,您将在SELECTUPDATEDELETE语句的WHERE子句中使用BETWEEN运算符。

MySQL BETWEEN 运算符示例

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

1) 使用 MySQL BETWEEN 与数字示例

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

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

SELECT 
    productCode, 
    productName, 
    buyPrice
FROM
    products
WHERE
    buyPrice BETWEEN 90 AND 100;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL BETWEEN 购买价格示例

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

SELECT 
    productCode, 
    productName, 
    buyPrice
FROM
    products
WHERE
    buyPrice >= 90 AND buyPrice <= 100;Code language: SQL (Structured Query Language) (sql)

试试看

要查找购买价格不在 $20 到 $100 之间的产品,请使用NOT BETWEEN运算符,如下所示:

SELECT 
    productCode, 
    productName, 
    buyPrice
FROM
    products
WHERE
    buyPrice NOT BETWEEN 20 AND 100;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL NOT BETWEEN 示例

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

SELECT 
    productCode, 
    productName, 
    buyPrice
FROM
    products
WHERE
    buyPrice < 20 OR buyPrice > 100;Code language: SQL (Structured Query Language) (sql)

试试看

2) 在日期示例中使用 MySQL 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);Code language: SQL (Structured Query Language) (sql)

试试看

MySQL BEETWEEN 与日期示例

在此示例中,我们使用CAST()将文字字符串'2003-01-01'转换为DATE值:

CAST('2003-01-01' AS DATE)Code language: SQL (Structured Query Language) (sql)

概括

  • 使用 MySQL BETWEEN运算符来测试某个值是否落在某个值范围内。
本教程有帮助吗?