WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
NOT WHERE子句中用来否定后跟条件的关键字。
下面的例子说明NOT的使用。为了列出除1002和1003之外的所有供应商制造的产品,可编写如下的代码:
SELECT prod_name,prod_price FROM products WHERE vend_id NOT IN(1002,1003) ORDER BY prod_name;
prod_name | prod_ price |
---|---|
.5 ton anvil 1 ton anvil 2 ton anvil JetPack 1000 JetPack 2000 |
5.99 9.99 14.99 35.00 55.00 |
这里的NOT否定跟在它之后的条件,因此, MySQL不是匹配1002和1003的vend_id,而是匹配1002和1003之外供应商的vend_id。
为什么使用NOT?对于简单的WHERE子句,使用NOT确实没有什么优势。但在更复杂的子句中,NOT是非常有用的。例如,在与IN操作符联合使用时,NOT使找出与条件列表不匹配的行非常简单。
MySQL中的NOT MySQL支持使用NOT对IN、BETWEEN和EXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别。