如何解決mysql的count()函數(shù)條件表達(dá)式不生效問題
示例
- 表數(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只有在遇見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登錄報(bào)錯(cuò)1130:1130?Host?***.***.***.***?is?not?allowe
有時(shí)候在登錄到MySQL服務(wù)器時(shí)會(huì)遇到1130錯(cuò)誤,這是因?yàn)闊o法連接到MySQL服務(wù)器或其他一些原因,這篇文章主要給大家介紹了關(guān)于解決MySQL登錄報(bào)錯(cuò)1130:1130?Host?***.***.***.***?is?not?allowed?to?connect?to?this?MySQL?server的相關(guān)資料,需要的朋友可以參考下2023-12-12MYSQL row_number()與over()函數(shù)用法詳解
這篇文章主要介紹了MYSQL row_number()與over()函數(shù)用法詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08通過MySQL日志實(shí)時(shí)查看執(zhí)行語句以及更新日志的教程
這篇文章主要介紹了通過MySQL日志實(shí)時(shí)查看執(zhí)行語句以及更新日志的教程,文中所講的方法使用到了mysqladmin命令,需要的朋友可以參考下2015-12-12MySQL中使用innobackupex、xtrabackup進(jìn)行大數(shù)據(jù)的備份和還原教程
這篇文章主要介紹了MySQL中使用innobackupex、xtrabackup進(jìn)行大數(shù)據(jù)的備份和還原教程,xtrabackup用來對(duì)超過10G數(shù)據(jù)的Mysql進(jìn)行備份和還原任務(wù),需要的朋友可以參考下2014-09-09一次docker登錄mysql報(bào)錯(cuò)問題的實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了一次docker登錄mysql報(bào)錯(cuò)問題的實(shí)戰(zhàn)記錄,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01解決Mysql?Binlog文件太大導(dǎo)致無法解析問題
這篇文章主要為大家介紹了解決Mysql?Binlog文件太大導(dǎo)致無法解析問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11windows下安裝mysql-8.0.18-winx64的教程(圖文詳解)
這篇文章主要介紹了windows下安裝mysql-8.0.18-winx64,需要的朋友可以參考下2019-12-12