我有一个名为 platform 的表,其中包含一个名为 entityid 的列。 entityid中的数据应该遵循n.n.n格式(其中n = 1或更多数字的数字,第一个数字是站点ID)。
如果我运行此查询:
SELECT count(*) FROM platform
我得到:16063 所以我的桌子上有16063行。当我尝试仅过滤网站18时,我运行此查询:
SELECT count(*) FROM platform
where entityid like '18.%.%'
我得到:4454 到现在为止还挺好。但如果我试图找到不在18号站点的平台:
SELECT count(*) FROM platform
where entityid not like '18.%.%'
我得到:11608
这是问题所在:4454 + 11608 = 16062
我错过了一张唱片。我想我已经获得了18号站点的所有平台,然后是所有不在站点18的平台 - 我怎么会错过一条记录?
答案 0 :(得分:3)
问题可能是空值。试试这个,看看它是否会返回一条记录:
select *
from platform
where entityid is null;
NULL值几乎失败了所有比较(is null
除外)。