課程
/數據庫
/MySQL
/性能優化之MySQL優化
為什么加 or null 求解
2017-03-21
源自:性能優化之MySQL優化 2-7
正在回答
count()中只有結果是not null時,才計數+1。比如在‘select count(year=2017) from film’中,count()里面的條件判斷的結果可能是true,也有可能是false,在數據庫中的表示就是1或者0,這兩者都不為null,屬于not null。而在條件語句后面加上or null,即表示當‘or’左邊的條件判斷的結果是true時,則返回1,計數+1;是flase時,則返回或執行‘or’右邊的字段或判斷,即返回null,不計數。
這個要看mysql服務器的版本的,目前5.7 的版本不需要加 or null 一樣效果
提轄魯
https://wangyaoxu.github.io/2017/09/21/mysql-count/
擬人
栗喵
慕粉164611153 回復 栗喵
qq_慕婉清2085323
假如這個表里有10條數據,其中age字段中的age = 12 的有3條,如果加null 查出來的就是三條,不加null查出來的還是10條,不加null的時候當查age不等于12的那些數據也會被算進去。
奈戈嵐勒
舉報
了解MySQL數據庫優化的方法和技巧,在課程中共同探討一起學習吧
7 回答為什么要加上or NULL
4 回答count(release_year = '2006' or NULL)和count(release_year)哪一個更快一些?
1 回答mys?qldumpslow求解
1 回答為什么改成film_id排序也能滿足需求
1 回答這樣使用null會不會次數重復
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-08-12
count()中只有結果是not null時,才計數+1。比如在‘select count(year=2017) from film’中,count()里面的條件判斷的結果可能是true,也有可能是false,在數據庫中的表示就是1或者0,這兩者都不為null,屬于not null。而在條件語句后面加上or null,即表示當‘or’左邊的條件判斷的結果是true時,則返回1,計數+1;是flase時,則返回或執行‘or’右邊的字段或判斷,即返回null,不計數。
2018-01-04
這個要看mysql服務器的版本的,目前5.7 的版本不需要加 or null 一樣效果
2017-09-21
https://wangyaoxu.github.io/2017/09/21/mysql-count/
2017-03-23
假如這個表里有10條數據,其中age字段中的age = 12 的有3條,如果加null 查出來的就是三條,不加null查出來的還是10條,不加null的時候當查age不等于12的那些數據也會被算進去。