如何解決mysql的count()函數(shù)條件表達(dá)式不生效問(wèn)題
示例
- 表數(shù)據(jù)

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

原因
count(‘任意內(nèi)容’)都會(huì)統(tǒng)計(jì)出所有記錄數(shù)
因?yàn)閏ount只有在遇見(jiàn)null時(shí)才不計(jì)數(shù)
即:
count(null)==0
解決
方法1
count()函數(shù)中條件表達(dá)式加上or null
select count(age = 10 or null) as count from student
方法2
使用IF()函數(shù),當(dāng)不滿足條件時(shí)表達(dá)式的值為NULL
select count(IF(age = 10,1,null)) as count from student
方法3
使用case when表達(dá)式,當(dāng)不滿足條件時(shí)表達(dá)式的值為NULL
select count(case when age = 10 then 1 else null end) as count from student
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談MYSQL存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)
本文主要介紹了淺談MYSQL存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
MySQL加減間隔時(shí)間函數(shù)DATE_ADD和DATE_SUB的實(shí)現(xiàn)
mysql中內(nèi)置函數(shù)date_add 和 date_sub能對(duì)指定的時(shí)間進(jìn)行增加或減少一個(gè)指定的時(shí)間間隔,本文主要介紹了MySQLDATE_ADD和DATE_SUB的實(shí)現(xiàn),感興趣的可以了解一下2024-09-09
mysql安全啟動(dòng)腳本mysqld_safe詳細(xì)介紹
這篇文章主要介紹了mysql安全啟動(dòng)腳本mysqld_safe詳細(xì)介紹,mysqld_safe增加了一些安全特性,需要的朋友可以參考下2014-07-07
MySQL數(shù)據(jù)庫(kù)的一次死鎖實(shí)例分析
本文主要給大家通過(guò)一個(gè)實(shí)例來(lái)具體介紹MySQL死鎖問(wèn)題的相關(guān)知識(shí),接下來(lái)我們就來(lái)一一介紹這部分內(nèi)容,希望能夠?qū)δ兴鶐椭?/div> 2016-11-11
mysql自動(dòng)填充時(shí)間的兩種實(shí)現(xiàn)方式小結(jié)
這篇文章主要介紹了mysql自動(dòng)填充時(shí)間的兩種實(shí)現(xiàn)方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11最新評(píng)論

