MySQL LIKE和NOT LIKE缺少一条记录

时间:2013-05-23 18:51:49

标签: mysql sql

我有一个名为 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的平台 - 我怎么会错过一条记录?

1 个答案:

答案 0 :(得分:3)

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

select *
from platform
where entityid is null;

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