上QQ阅读APP看书,第一时间看更新
5.3 NOT操作符
WHERE子句中的NOT操作符有且只有一个功能,那就是否定其后所跟的任何条件。因为NOT从不单独使用(它总是与其他操作符一起使用),所以它的语法与其他操作符有所不同。NOT关键字可以用在要过滤的列前,而不仅是在其后。
NOT
WHERE子句中用来否定其后条件的关键字。
下面的例子说明NOT的用法。为了列出除DLL01之外的所有供应商制造的产品,可编写如下的代码。
输入▼
SELECT prod_name FROM Products WHERE NOT vend_id = 'DLL01' ORDER BY prod_name;
输出▼
prod_name ------------------ 12 inch teddy bear 18 inch teddy bear 8 inch teddy bear King doll Queen doll
分析▼
这里的NOT否定跟在其后的条件,因此,DBMS不是匹配vend_id为DLL01,而是匹配非DLL01之外的所有东西。
上面的例子也可以使用<>操作符来完成,如下所示。
输入▼
SELECT prod_name FROM Products WHERE vend_id <> 'DLL01' ORDER BY prod_name;
输出▼
prod_name ------------------ 12 inch teddy bear 18 inch teddy bear 8 inch teddy bear King doll Queen doll
分析▼
为什么使用NOT?对于这里的这种简单的WHERE子句,使用NOT确实没有什么优势。但在更复杂的子句中,NOT是非常有用的。例如,在与IN操作符联合使用时,NOT可以非常简单地找出与条件列表不匹配的行。
说明:MariaDB中的NOT
MariaDB支持使用NOT否定IN、BETWEEN和EXISTS子句。大多数DBMS允许使用NOT否定任何条件。