為什么要加上or NULL
count(release_year = '2006' or NULL) 這部分 為什么要加上or NULL 直接count(release_year='2006')有什么問(wèn)題嗎?不就是要找release_year = '2006'的數(shù)據(jù)嗎,為什么要計(jì)算NULL的數(shù)據(jù)
count(release_year = '2006' or NULL) 這部分 為什么要加上or NULL 直接count(release_year='2006')有什么問(wèn)題嗎?不就是要找release_year = '2006'的數(shù)據(jù)嗎,為什么要計(jì)算NULL的數(shù)據(jù)
2015-01-28
舉報(bào)
2015-02-12
因?yàn)?當(dāng)?release_year不是 2006時(shí) ,release_year='2006' 結(jié)果false 不是 NULL,
Count在 值是NULL是 不統(tǒng)計(jì)數(shù), 至于加上or NULL , 很像其他編程里的or運(yùn)算符,第一個(gè)表達(dá)式是true就是不執(zhí)行or后面的表達(dá)式,第一個(gè)表達(dá)式是false 執(zhí)行or后面的表達(dá)式 。當(dāng)release_year不為2006時(shí)release_year = '2006' or NULL 的結(jié)果是NULL,Count才不會(huì)統(tǒng)計(jì)上這條記錄數(shù)
2018-12-27
為什么要加or null?1.因?yàn)閏ount(參數(shù)) 只要參數(shù)不為null,都會(huì)進(jìn)行計(jì)數(shù),只寫(xiě)year=2006(相當(dāng)于year==2006)是個(gè)true,計(jì)數(shù),如果不加or null,那么year==2007 或者year==2008是個(gè)false,也會(huì)進(jìn)行計(jì)數(shù)。2.如果加了or null 的話 ,year==2006是個(gè)ture,true or null 是true 會(huì)計(jì)數(shù);year==2007是個(gè)false,false or null 等于null,則不會(huì)計(jì)數(shù)??梢詤⒖歼@個(gè)文章https://wangyaoxu.github.io/2017/09/21/mysql-count/
2017-09-20
最佳答案明明是錯(cuò)的。。。
2016-04-23
查了下資料,count('任意內(nèi)容')都會(huì)統(tǒng)計(jì)出所有記錄數(shù),因?yàn)閏ount只有在遇見(jiàn)null時(shí)不計(jì)數(shù),即count(null)==0,因此前者單引號(hào)內(nèi)不管輸入什么值都會(huì)統(tǒng)計(jì)出所有記錄數(shù),所以這節(jié)課例子中count(release_year='2006')單引號(hào)里你填什么年份都是1000條記錄,因?yàn)樗麄兌糿ot null!
而為了讓查找2006年份或2007年份的電影這個(gè)條件生效,就必須加上or null,告訴count,release_year='2006'或release_year='2007'為計(jì)數(shù)條件且不統(tǒng)計(jì)記錄為null的值。
后面這一段是自己理解,不一定對(duì),而且sakila數(shù)據(jù)庫(kù)里的film表的release_year字段允許為空,初始值為空,不知道和這個(gè)有沒(méi)有關(guān)系,感覺(jué)沒(méi)關(guān)系。
2015-04-25
為了讓releas_year不為2006時(shí),結(jié)果為null