MySQL NOT 运算符

MySQL NOT 运算符

NOT 运算符用于 WHERE 子句中,返回所有不匹配指定条件的记录。它将条件的结果从真反转为假,反之亦然。

以下 SQL 选取所有不是来自德国的客户:

实例

SELECT * FROM Customers
WHERE NOT Country = 'Germany';

亲自试一试

在上面的示例中,NOT 运算符与 = 运算符结合使用。

NOT 运算符也与其他运算符结合使用以排除数据,例如:

  • NOT LIKE
  • NOT BETWEEN
  • NOT IN
  • IS NOT NULL
  • NOT EXISTS

NOT 语法

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

演示数据库

以下是 Northwind 演示数据库中 Customers 表的部分片段:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

结合使用 AND、OR 和 NOT

你也可以将 ANDORNOT 运算符结合使用。

以下 SQL 选取国家为 Germany 且城市必须为 BerlinStuttgart 的所有客户(使用括号构成复杂表达式):

实例

SELECT * FROM Customers
WHERE Country = 'Germany' AND (City = 'Berlin' OR City = 'Stuttgart');

亲自试一试

以下 SQL 选取国家不是 Germany 也不是 USA 的所有客户:

实例

SELECT * FROM Customers
WHERE NOT Country = 'Germany' AND NOT Country = 'USA';

亲自试一试

NOT LIKE 运算符

NOT LIKE 运算符用于 WHERE 子句中,排除匹配指定字符模式的行。

常与 NOT LIKE 运算符一起使用的有两个通配符:

  • 百分号 % - 表示零个、一个或多个字符
  • 下划线 _ - 表示单个字符

以下 SQL 选取所有不以字母 A 开头的客户:

实例

选取不以字母 A 开头的客户:

SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'A%';

亲自试一试

NOT BETWEEN 运算符

NOT BETWEEN 运算符用于 WHERE 子句中,选取值落在指定包含范围之外的行。

NOT BETWEEN 运算符可与数值、文本或日期值一起使用。

以下 SQL 选取所有 CustomerID 不在 1060 之间的客户:

实例

选取 customerID 不在 1060 之间的客户:

SELECT * FROM Customers
WHERE CustomerID NOT BETWEEN 10 AND 60;

亲自试一试

NOT IN 运算符

NOT IN 运算符用于 WHERE 子句中,排除匹配指定列表或子查询结果集中任何值的行。

以下 SQL 选取所有 Country 不在 ParisLondon 中的客户:

实例

选取不是来自巴黎或伦敦的客户:

SELECT * FROM Customers
WHERE City NOT IN ('Paris', 'London');

亲自试一试

NOT GREATER THAN(不大于)

在 SQL 中,"不大于"条件通常使用标准的"大于或等于"(>=)运算符来表达。

以下 SQL 选取所有 CustomerID 不大于 50 的客户:

实例

选取 CustomerId 不大于 50 的客户:

SELECT * FROM Customers
WHERE NOT CustomerID > 50;

亲自试一试

NOT LESS THAN(不小于)

在 SQL 中,"不小于"条件通常使用标准的"小于或等于"(<=)运算符来表达。

以下 SQL 选取所有 CustomerID 不小于 50 的客户:

实例

选取 CustomerID 不小于 50 的客户:

SELECT * FROM Customers
WHERE NOT CustomerId < 50;

亲自试一试