为了账号安全,请及时绑定邮箱和手机立即绑定

关于本小节中,count(id) >= 2;的测试!!!

以下面的数据表为例:

http://img1.sycdn.imooc.com//5918aa4500013d6005320200.jpg

注意表中sex列, 其中值为NULL的有2个,值为0的有3个,值为2的有1个,值为3的有1个。

上面这步很重要!!接着我们来测试一下:

当 count(id) >= 1 时:

http://img1.sycdn.imooc.com//59189ef70001c1bd05140163.jpg

当 count(id) >= 2 时:

http://img1.sycdn.imooc.com//59189fe80001e4a905010131.jpg

当 count(id) >= 3 时:

http://img1.sycdn.imooc.com//5918a04b00018d9d05080117.jpg

当 count(id) >= 4 时:

http://img1.sycdn.imooc.com//5918a05100010ec505020034.jpg

由此可见, count(id) >= 2 输出的结果跟id毫无关系! 它只跟set列中具有相同值的个数有关,

值为NULL的有2个,值为0的有3个,值为2的有1个,值为3的有1个

当 count(id) >= 1 时, 输出的是NULL,0,2,3。因为他们的数目都满足>=1

当 count(id) >= 2 时, 输出的是NULL,0。因为他们对应的数目分别为2和3,都满足>=2

当 count(id) >= 3 时, 输出的是0,  因为值为0的个数为3,满足>=3

当 count(id) >= 4 时, 没有输出。因为没有满足条件的元素。


这问题让我纠结的半个小时,看了一些慕友的问答后,更是把我搞糊涂了,说什么输出的是非NULL值,还有说什么跟id有什么什么关系。经过测试,输出的结果只跟set列具有相同的值的个数有关系,跟是不是NULL没关系,跟id也没关系。

 你可以把count(id) >= 2 改成count(username) >= 2或者改成count(age) >= 2或者改成count(password) >= 2,输出的结果都是一样的,老师的一个无意之举,本没有什么特别的含义,结果却引得众慕友们胡乱猜测。为了让还没有搞明白的慕友们,在这个问题上少绕些弯子,就写了这么一些东西,如果有什么不对的地方,欢迎各慕友指点。。

 

正在回答

14 回答

count计算参数列表中的数字项的个数

0 回复 有任何疑惑可以回复我~

感谢感谢

0 回复 有任何疑惑可以回复我~

谢谢大神!

1 回复 有任何疑惑可以回复我~

厉害啊  我看到你这个之前还以为count(id)>=2表示的是在id>=2的范围里面找sex的值呢

0 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

关于本小节中,count(id) >= 2;的测试!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信