使用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查询非常有帮助,特别是在特定场合下,其能为我们提供更高效,更准确的检索功能。