MySQL BETWEEN
简介:在本教程中,您将学习如何使用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运算符测试值是否在值范围内。