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