“ <> some”和“ not in”之间的区别

时间:2018-09-06 09:58:14

标签: mysql sql database

我正在阅读数据库系统的基础知识,在主题嵌套子查询(集比较)中,我写道somein是相同的,而<>some和{{1} } 不是。 根据我的说法,not in的意思是“至少一个”,而<>some的意思是“不在集合中” ...所以我认为它们的意思应该相同。

2 个答案:

答案 0 :(得分:6)

它们不一样!

<>SOME的意思是:not = a not = b not = c ...

NOT IN的意思是:not = a not = b not = c ...

希望现在对您来说更加清楚。

例如:

SELECT CustomerID
FROM Sales.Customer
WHERE TerritoryID <> ANY
    (SELECT TerritoryID
    FROM Sales.SalesPerson);

此查询返回每个 CustomerID ,但包含TerritoryID is NULL的除外。

如果您使用NOT IN,则查询将不返回任何内容。

答案 1 :(得分:1)

<>仅适用于1个值,而“ not in”适用于1个或多个值,例如

1. WHERE id <> '123'
2. WHERE id NOT IN ('123') --same as case 1
3. WHERE id NOT IN ('123', '456')