3

我有一个名为platform的表,其中有一列名为entityid。entityid 中的数据应该遵循格式 nnn(其中 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 之外的所有平台 - 我怎么会错过一条记录?

4

1 回答 1

3

问题可能是空值。试试这个,看看它是否返回记录:

select *
from platform
where entityid is null;

NULL 值几乎所有比较都失败(除了is null)。

于 2013-05-23T18:53:55.477 回答