它们在语义上是相同的。
IN只是第二个示例中一串相等语句的简写形式。性能也应该相同。
类型无关紧要,它将始终计算为一串相等的字符串。
但是,使用
NOT IN和数据可能有所不同
NULL,
NULLa的
NOT IN比较结果不会为false ,因此您可能会得到结果集中未曾期望的行。
举个例子:
SELECT 'Passed!' WHERe NULL NOT IN ('foo', 'bar')上面的查询将不会返回一行,即使在面值
NULL既不
'foo'或者
'bar'-这是因为
NULL是一个未知的状态,和SQL不能肯定地说,未知值是
不是 对的一个
IN列出的值。



