MySQL NOT IN 运算符用于将表达式与值进行比较。SELECT 语句选择与 NOT IN 表达式中的值不匹配的记录。
NOT IN 运算符与 IN 运算符完全相反。您可以将其称为 NOT (Expression IN (Values)),其语法如下:
SELECT Columns
FROM Tables
WHERE Column_Name NOT IN (Value1,...., ValueN)
为了演示,我们使用如下数据:

MySQL NOT IN 运算符示例
在此示例中,我们检查数值和字符串数据是否存在。如果不存在,则返回 1,否则返回 0。
SELECT 4 NOT IN (2, 4, 6, 8, 10);
SELECT 4 NOT IN (2, 6, 8, 10);
SELECT 'abc' NOT IN ('xyz', 'ab', 'hi');

NOT IN 示例 2
以下 Not in 查询 SELECT 了收入不在 50000 或 60000 范围内的客户。
SELECT EmpID,
`First Name`,
`Last Name`,
Qualification,
Occupation,
Income,
Sales,
HireDate
FROM customer
WHERE Income NOT IN (50000, 60000);

MySQL NOT IN 字符串运算符示例 3
这次,我们在 NOT IN 中使用了字符串数据。此 查询 查找职业不是文员或专业人员的客户。
SELECT EmpID,
`First Name`,
`Last Name`,
Qualification,
Occupation,
Income,
Sales,
HireDate
FROM customer
WHERE Occupation NOT IN ('Clerical', 'Professional');

此查询返回职业不是文员、专业人员或技术 manual 的客户。您也可以将 ORDER BY 子句 与此 Not In 运算符一起使用。请参阅 IN 示例 文章。
SELECT EmpID,
`First Name`,
`Last Name`,
Qualification,
Occupation,
Income,
Sales,
HireDate
FROM customer
WHERE Occupation NOT IN ('Clerical', 'Professional', 'Skilled Manual');
