我有一个名为platform的表,其列名为entityid.实体ID中的数据应遵循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的所有平台-我怎么会丢失一条记录?
解决方法:
问题可能是空值.试试这个,看看它是否返回一条记录:
select *
from platform
where entityid is null;
NULL值几乎使所有比较失败(除了null之外).
标签:sql,mysql
来源: https://codeday.me/bug/20191123/2066230.html