使用MySQL的 NOT IN 运算符(mysqlnotin)

使用MySQL的 NOT IN 运算符是使用SQL编写查询的必学技能之一,它有时非常有用。 NOT IN 运算符允许选择记录,这些记录在指定的列中不再包含指定值列表中的任何值。

不同于IN运算符,NOT IN运算符在确定有效值时有很大不同。如果在查询中使用IN运算符,只有查询中列出的值表中指定的值才是有效结果;但用NOT IN运算符实现查询,查询中列出的值以外的其他值都是有效结果。

下面让我们来看看NOT IN运算符的使用示例:

假设要查询表中没有 book_ID 为 ‘A1000′,’A1001’,’A1002’的所有书的信息:

SELECT *

FROM books

WHERE book_ID NOT IN (‘A1000′,’A1001′,’A1002’);

上面的查询在books表中查找所有book_ID不为’A1000′,’A1001′,’A1002’的记录。

事实上,使用 NOT IN 运算符还可以做其他的复杂查询,例如同时使用多个表:

SELECT c.customer_name, p.quantity

FROM customers c

INNER JOIN products p

ON c.cust_id = p.cust_id

WHERE c.code NOT IN (SELECT code FROM another_table);

上面的查询将查询customers表和products表,信息来源于code不在another_table表中的所有记录。

总而言之,NOT IN运算符对编写SQL查询非常有帮助,特别是在特定场合下,其能为我们提供更高效,更准确的检索功能。


数据运维技术 » 使用MySQL的 NOT IN 运算符(mysqlnotin)