求教一个mysql查询有关问题:为什么小弟我的SQL语句不能覆盖所有情况?内详
求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详select count(*) from t1 where col1 03
求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详
select count(*) from t1 where col1 > 0
339074条
select count(*) from t1 where col1 > 0 and LENGTH(col2) > 0
52308
select count(*) from t1 where col1 > 0 and LENGTH(col2) = 0
0
为什么第二条第三条查出来的结果之和和第一条查出来的结果不一样呢?
col2字段是varchar类型,长度150,存储的url地址(也可能为空或者为数字)
col1字段int类型,存储某编号
另外:
select count(*) from t1 where col1 > 0 and col2 > 0
16484
select count(*) from t1 where col1 > 0 and col2 = 0
32584 mysql 查询
[解决办法]
不一样很正常吧,col2字段是varchar类型,长度150存储的url地址(也可能为空或者为数字)
既然是字符串,那么你直接用col2 > 0 比较就已经有问题了,字符串都不能这么比较
这是其一,其二,字符串可能为空,又不是只有0或者大于0
[解决办法]没有看见QQ消息啊。。。腾讯2B了么。我汗!!!
[解决办法]
因为 col2 也可能为空: null
自然不属于 LENGTH(col2) = 0 范围