gpt4 book ai didi

mysql - 使用 mysql IN 和 not In 运算符时的奇怪行为

转载 作者:行者123 更新时间:2023-11-29 06:45:13 26 4
gpt4 key购买 nike

我有一个包含 100 行的表 A,另一个包含 200 行的表 A。如果我这样做:

select A.keya 
from A
where A.keya not in (Select B.keyb from B)

我得到 0 个结果。然后我运行

select A.keya 
from A
where A.keya in (Select B.keyb from B)

我得到了 50 个结果

我是否遗漏了 IN 运算符的某些内容? Keya 和 keyb 是 Varchar 字段。

第一个查询不应该返回 150 个条目吗?

谢谢

最佳答案

我在这里能想到的唯一解释是 A 表中的 100 个值中有 50 个是 NULL。对于 NULL 值,以下两个表达式两者始终会失败:

WHERE NULL NOT IN (SELECT keyb FROM B)
WHERE NULL IN (SELECT keyb FROM B)

因此,如果 50 个 keya 值匹配,那么您的第二个查询结果就是预期的。但对于第一个查询,50 个匹配值将失败,并且 NULL 值也会失败。

关于mysql - 使用 mysql IN 和 not In 运算符时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com