mysql> SELECT 10050001 NOT IN (
-> SELECT `CampusID`
-> FROM `USERS`
-> );
+----------------------------------------------------+
| 10050001 NOT IN (
SELECT `CampusID`
FROM `USERS`
) |
+----------------------------------------------------+
| NULL |
+----------------------------------------------------+
为什么会出现这样的结果呢?

解决方案 »

  1.   

    我想not in 的结果是1或者0吧。应该是个布尔值,为什么会是NULL呢?
    USERS.CampusID的值是int(11)
      

  2.   

    我这里是返回的是1,  版本5.0.37-community-nt
      

  3.   

    不知是否版本问题。
    我的结果很正确mysql> select 122332 not in (
        -> select `aa`
        -> from `a`
        -> );
    +----------------------------------------+
    | 122332 not in (
    select `aa`
    from `a`
    ) |
    +----------------------------------------+
    |                                      1 |
    +----------------------------------------+
    1 row in set (0.00 sec)
    顺便说说,mysql里int(4)和int(11)的最大值都是21亿多的那个,不会因为你改大了它就大的,小心以后溢出了,想大就用big int,或者干脆用varchar等字符型