如何解決mysql的count()函數(shù)條件表達式不生效問題
更新時間:2024年11月16日 14:04:48 作者:天黑請?閉眼
該文章總結(jié)了SQL查詢中`count`函數(shù)統(tǒng)計錯誤的原因,以及三種解決方法:使用`ornull`方法、`IF()`函數(shù)和`casewhen`表達式,當不滿足條件時,表達式的值為NULL
示例
- 表數(shù)據(jù)

- 統(tǒng)計錯誤的sql
select count(age = 10) as count from student
- 查詢結(jié)果

原因
count(‘任意內(nèi)容’)都會統(tǒng)計出所有記錄數(shù)
因為count只有在遇見null時才不計數(shù)
即:
count(null)==0
解決
方法1
count()函數(shù)中條件表達式加上or null
select count(age = 10 or null) as count from student
方法2
使用IF()函數(shù),當不滿足條件時表達式的值為NULL
select count(IF(age = 10,1,null)) as count from student
方法3
使用case when表達式,當不滿足條件時表達式的值為NULL
select count(case when age = 10 then 1 else null end) as count from student
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL加減間隔時間函數(shù)DATE_ADD和DATE_SUB的實現(xiàn)
mysql中內(nèi)置函數(shù)date_add 和 date_sub能對指定的時間進行增加或減少一個指定的時間間隔,本文主要介紹了MySQLDATE_ADD和DATE_SUB的實現(xiàn),感興趣的可以了解一下2024-09-09
本文主要給大家通過一個實例來具體介紹MySQL死鎖問題的相關(guān)知識,接下來我們就來一一介紹這部分內(nèi)容,希望能夠?qū)δ兴鶐椭?/div> 2016-11-11
mysql自動填充時間的兩種實現(xiàn)方式小結(jié)
這篇文章主要介紹了mysql自動填充時間的兩種實現(xiàn)方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11最新評論

