MySQL NOT IN

摘要:在本教程中,您将学习如何使用 MySQL NOT IN运算符来检查某个值是否不在值列表中。

MySQL NOT IN 运算符简介

NOT运算符对IN运算符求反:

value NOT IN (value1, value2, value2)Code language: SQL (Structured Query Language) (sql)

如果该值不等于列表中的任何值,则NOT IN运算符返回 1。否则,返回 0。

以下示例使用NOT IN运算符检查数字 1 NOT IN列表 (1,2,3) 中:

SELECT 1 NOT IN (1,2,3);Code language: SQL (Structured Query Language) (sql)

输出:

+------------------+
| 1 NOT IN (1,2,3) |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)Code language: plaintext (plaintext)

它返回 0 (false),因为 1 NOT INfalse

以下示例使用NOT IN运算符检查 0 是否NOT IN列表 (1,2,3) 中:

SELECT 0 NOT IN (1,2,3);Code language: SQL (Structured Query Language) (sql)

输出:

+------------------+
| 0 NOT IN (1,2,3) |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)Code language: plaintext (plaintext)

如果 IN 运算符左侧的值为NULL ,则NOT IN IN运算符将返回 NULL。例如:

SELECT NULL NOT IN (1,2,3);Code language: SQL (Structured Query Language) (sql)

输出:

+---------------------+
| NULL NOT IN (1,2,3) |
+---------------------+
|                NULL |
+---------------------+
1 row in set (0.00 sec)Code language: plaintext (plaintext)

从技术上讲, NOT IN运算符等效于以下内容:

NOT (value = value1 OR value = value2 OR value = valu3)Code language: SQL (Structured Query Language) (sql)

或者:

value <> value1 AND value <> value2 AND value <> value3Code language: SQL (Structured Query Language) (sql)

MySQL NOT IN 运算符示例

我们将使用示例数据库中的offices表来说明NOT IN运算符:

MySQL NOT IN 运算符示例

以下示例使用NOT IN运算符查找不在FranceUSA的办事处:

SELECT 
    officeCode, 
    city, 
    phone
FROM
    offices
WHERE
    country NOT IN ('USA' , 'France')
ORDER BY 
    city;Code language: SQL (Structured Query Language) (sql)

输出:

+------------+--------+------------------+
| officeCode | city   | phone            |
+------------+--------+------------------+
| 7          | London | +44 20 7877 2041 |
| 6          | Sydney | +61 2 9264 2451  |
| 5          | Tokyo  | +81 33 224 5000  |
+------------+--------+------------------+
3 rows in set (0.02 sec)Code language: plaintext (plaintext)

概括

  • 使用 MySQL NOT IN检查某个值是否与列表中的任何值都不匹配。
本教程有帮助吗?