MySQL AND运算符

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

简介:在本教程中,您将学习如何使用MySQL AND运算符组合多个布尔表达式来过滤数据。

MySQL AND运算符简介

AND运算符是一个逻辑运算符,它将两个或多个布尔表达式组合在一起,并且仅在两个表达式的计算结果都为true时才返回true。
如果两个表达式之一的计算结果为false,则AND运算符将返回false。

这是AND运算符的语法:

boolean_expression_1 AND boolean_expression_2

下表说明了组合true,false和null时AND运算符的结果。

TRUEFALSENULL
TRUETRUEFALSENULL
FALSEFALSEFALSEFALSE
NULLNULLFALSENULL

通常在SELECT,UPDATE,DELETE语句的WHERE子句中使用AND运算符来形成条件。
AND运算符还用于INNER JOIN和LEFT JOIN子句的联接条件。

当评估一个具有AND运算符的表达式时,只要能够确定结果,MySQL就会停止评估该表达式的其余部分。
此功能称为短路评估。

考虑以下示例。

SELECT 1 = 0 AND 1 / 0 ;
1 = 0 AND 1 / 0
---------------
0

请注意,在MySQL中,零被认为是错误的,非零则被视为true。

MySQL仅计算表达式1 = 0 AND 1/0的第一部分1 =0。
由于表达式1 = 0返回false,因此MySQL可以得出整个表达式的结果,即false。
MySQL不评估表达式的剩余部分,即1/0;如果这样做,由于除以零错误,将发出错误。

MySQL AND运算符范例

让我们使用示例数据库中的customers表进行演示。

以下语句使用AND运算符查找位于美国加利福尼亚(CA)的客户:

SELECT 
    customername, 
    country, 
    state
FROM
    customers
WHERE
    country = 'USA' AND state = 'CA';

通过使用AND运算符,您可以组合两个以上的布尔表达式。
例如,以下查询返回位于美国加利福尼亚州且信用额度大于100K的客户。

SELECT    
	customername, 
	country, 
	state, 
	creditlimit
FROM    
	customers
WHERE country = 'USA'
	AND state = 'CA'
	AND creditlimit > 100000;

在本教程中,您学习了如何使用MySQL AND运算符组合两个或多个布尔表达式以在WHERE子句中形成条件。