以下是 MySQL IN() 函数返回 NULL 作为结果的两种情况 -
情况 1 - 当左侧表达式为 NULL 时 h2>
如果左侧表达式为 NULL,IN() 函数将返回 NULL。下面的例子将演示它 -
mysql> Select NULL IN (1,2,3,4,10);
+----------------------+
| NULL IN (1,2,3,4,10) |
+----------------------+
| NULL |
+----------------------+
1 row in set (0.00 sec)
情况 2 - 当列表中的表达式之一为 NULL 并且未找到匹配项时
IN() 函数如果未找到任何匹配项,将返回 NULL并且列表中的表达式之一为 NULL。如果存在匹配项并且列表中的表达式之一为 NULL,则它将返回 1 作为输出。下面的例子将演示它 -
mysql> Select 10 IN (NULL,11,12);
+--------------------+
| 10 IN (NULL,11,12) |
+--------------------+
| NULL |
+--------------------+
1 row in set (0.00 sec)
mysql> Select 10 IN (NULL,11,12,10);
+-----------------------+
| 10 IN (NULL,11,12,10) |
+-----------------------+
| 1 |
+-----------------------+
1 row in set (0.00 sec)