w3resource

MySQL AND operator

AND operator

MySQL logical AND operator compares two expressions and returns true if both of the expressions are true.

This function is useful in -

  • AND ensures that all conditions specified in a query must be true for a row to be included in the result set.
  • It enables you to express logical relationships between conditions, such as "A AND B AND C" where all conditions must be satisfied.
  • By using AND judiciously, you can optimize your queries to efficiently retrieve the desired data.
  • In more advanced queries, especially those involving joins and subqueries, AND is used to establish relationships between different parts of the query.
  • By using AND, you can refine your queries to retrieve a more specific set of results.
  • When combined with UPDATE and DELETE statements, AND allows you to specify multiple conditions that must be met for the operation to be executed.
  • It's useful for combining different filters based on various attributes or columns.

Syntax:

AND, &&

This operator returns 1 if all operands are nonzero and not NULL, 0 if one or more operands are 0, otherwise, NULL is returned.

MySQL Version: 8.0

Example: MySQL AND operator

In the following MySQL statement all the operands are non-zero (5 and 5) and both of them are not NULL, so logical and operator returns 1.

Code:


-- This SQL statement performs a logical AND operation on the number 5
-- Explanation: The query evaluates a logical AND operation between the number 5 and itself, returning the result of the operation.
SELECT 5 && 5;  -- The SELECT statement is used to evaluate the expression '5 && 5' and return the result

Explanation:

  • The SELECT statement is used to evaluate expressions and return the result.

  • The && operator is a logical AND operator in MySQL.

  • In the context of the expression 5 && 5:

    • Any non-zero number is considered as TRUE.

    • The logical AND operation returns TRUE if both operands are TRUE.

    • Since 5 is a non-zero number, it is considered TRUE.

    • TRUE && TRUE evaluates to TRUE, which is represented as 1 in MySQL.

  • Therefore, the result of SELECT 5 && 5 is 1.

Output:

MySQL> SELECT 5 && 5;
+--------+
| 5 && 5 |
+--------+
|      1 | 
+--------+
1 row in set (0.00 sec)

Example of MySQL AND operator with zero input

In the following MySQL statement, one of the operands is non zero (5 and 0), so logical and operator returns 0.

Code:


-- This SQL statement performs a logical AND operation between the number 5 and 0
-- Explanation: The query evaluates a logical AND operation between the number 5 and 0, returning the result of the operation.
SELECT 5 && 0;  -- The SELECT statement is used to evaluate the expression '5 && 0' and return the result

Explanation:

  • The SELECT statement is used to evaluate expressions and return the result.

  • The && operator is a logical AND operator in MySQL.

  • In the context of the expression 5 && 0:

    • Any non-zero number is considered as TRUE.

    • Zero (0) is considered as FALSE.

    • The logical AND operation returns TRUE only if both operands are TRUE.

    • In this case, 5 is TRUE (non-zero), and 0 is FALSE.

    • TRUE && FALSE evaluates to FALSE, which is represented as 0 in MySQL.

  • Therefore, the result of SELECT 5 && 0 is 0.

Output:

MySQL> SELECT 5 && 0;
+--------+
| 5 && 0 |
+--------+
|      0 | 
+--------+
1 row in set (0.00 sec)

Example of MySQL AND operator with NULL input

In the following MySQL statement, one of the operands is non zero (5) and another one is NULL, so logical and operator returns NULL.

Code:


-- This SQL statement performs a logical AND operation between the number 5 and NULL
-- Explanation: The query evaluates a logical AND operation between the number 5 and NULL, returning the result of the operation.
SELECT 5 && NULL;  -- The SELECT statement is used to evaluate the expression '5 && NULL' and return the result

Explanation:

  • The SELECT statement is used to evaluate expressions and return the result.

  • The && operator is a logical AND operator in MySQL.

  • In the context of the expression 5 && NULL:

    • Any non-zero number is considered as TRUE.

    • NULL represents an unknown or undefined value in SQL.

    • The logical AND operation returns TRUE only if both operands are TRUE.

    • If any operand is NULL, the result of the logical operation is NULL because the truth value is unknown.

    • In this case, 5 is TRUE (non-zero), but NULL is an undefined value.

    • TRUE && NULL results in NULL.

  • Therefore, the result of SELECT 5 && NULL is NULL.

Sample Output:

MySQL> SELECT 5 && NULL;
+-----------+
| 5 && NULL |
+-----------+
|      NULL | 
+-----------+
1 row in set (0.00 sec)

Example of MySQL AND operator with zero and NULL input

In the following MySQL statement, one of the operands is zero (0) and another one is NULL, so logical and operator returns 0.

Code:


-- This SQL statement performs a logical AND operation between the number 0 and NULL
-- Explanation: The query evaluates a logical AND operation between the number 0 and NULL, returning the result of the operation.
SELECT 0 && NULL;  -- The SELECT statement is used to evaluate the expression '0 && NULL' and return the result

Explanation:

  • The SELECT statement is used to evaluate expressions and return the result.

  • The && operator is a logical AND operator in MySQL.

  • In the context of the expression 0 && NULL:

    • Zero (0) is considered as FALSE.

    • NULL represents an unknown or undefined value in SQL.

    • The logical AND operation returns TRUE only if both operands are TRUE.

    • If one operand is FALSE, the result of the logical AND operation is FALSE, regardless of the other operand.

    • In this case, 0 is FALSE and NULL is an undefined value.

    • FALSE && NULL results in FALSE because FALSE AND anything is FALSE.

  • Therefore, the result of SELECT 0 && NULL is 0.

Output:

MySQL> SELECT 0 && NULL;
+-----------+
| 0 && NULL |
+-----------+
|         0 | 
+-----------+
1 row in set (0.00 sec)

Example of MySQL AND operator with both inputs are NULL

In the following MySQL statement, all the operands are NULL. So the operator returns NULL.

Code:


-- This SQL statement performs a logical AND operation between two NULL values
-- Explanation: The query evaluates a logical AND operation between NULL and NULL, returning the result of the operation.
SELECT NULL && NULL;  -- The SELECT statement is used to evaluate the expression 'NULL && NULL' and return the result

Explanation:

  • The SELECT statement is used to evaluate expressions and return the result.

  • The && operator is a logical AND operator in MySQL.

  • In the context of the expression NULL && NULL:

    • NULL represents an unknown or undefined value in SQL.

    • The logical AND operation returns TRUE only if both operands are TRUE.

    • If any operand is NULL, the result of the logical operation is NULL because the truth value is unknown.

    • In this case, both operands are NULL.

    • NULL && NULL results in NULL because the logical AND operation with unknown values remains unknown.

  • Therefore, the result of SELECT NULL && NULL is NULL.

Output:

MySQL> SELECT NULL && NULL;
+--------------+
| NULL && NULL |
+--------------+
|         NULL | 
+--------------+
1 row in set (0.00 sec)

Previous: NOT LIKE
Next: NOT operator



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/mysql/logical-operators/and-operator.php