• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详

php 搞代码 3年前 (2022-01-23) 17次浏览 已收录 0个评论
文章目录[隐藏]

mysql 查询

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

回复讨论(解决方案)

select count(*) from t1 where col1 > 0
339074条

select count(*) from t1 whe%本文来源gaodai#ma#com搞*代#码9网#搞gaodaima代码re 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
不一样很正常吧,col2字段是varchar类型,长度150存储的url地址(也可能为空或者为数字)
既然是字符串,那么你直接用col2 > 0 比较就已经有问题了,字符串都不能这么比较
这是其一,其二,字符串可能为空,又不是只有0或者大于0

select count(*) from t1 where col1 > 0 and col2 = ”
0

select count(*) from t1 where col1 > 0 and col2 != ”
52308

这样也不能全覆盖…

select count(*) from t1 where col1 > 0 and col2 is null 这样有没有值呢

我还是没看见你加我QQ啊,急死了- –

select count(*) from t1 where col1 > 0 and col2 is null 这样有没有值呢

有了…284786 原来是这样

多谢几位…

另外我加你QQ了你看下

select count(*) from t1 where col1 > 0 and col2 is null 这样有没有值呢

有了…284786 原来是这样

多谢几位…

另外我加你QQ了你看下 没有看见QQ消息啊。。。腾讯2B了么。我汗!!!

因为 col2 也可能为空: null
自然不属于 LENGTH(col2) = 0 范围

受教 以后mysql查字符串要考虑到is null


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址