今天工程時,遇到一個狀況,計算t_user_listen表中QUESTION_ID=xx時,LISTEN_NUM的個數前端
個數確定不能爲null返回給前端,所以須要對結果進行處理,當結果爲null的時候返回0,不然返回結果數,正常狀況下,大夥都會想到mysql 的ifnuu函數,以下
我以前寫過一篇文章,關於ifnull,請查看
http://my.oschina.net/u/2312022/blog/703396
在這裏解釋以下
1.查詢的對象自己爲null,以下圖
2.對象.屬性爲null
3.ifnull(對象.屬性,0)
總結:很明顯,
1>對象爲null時,ifnull(對象.屬性,0)是失效的 2>SELECT IFNULL(SUM(tul.LISTEN_NUM),0) FROM t_user_listen tul WHERE tul.QUESTION_ID = '51230958430954308' 這種狀況是有效的,見下圖
3>狀況2之因此知足ifnull,我估計是使用了sum()函數的緣由,使用sum函數後獲得的結果就不是一個對象了,是一個純粹的數字(或null)了,在對純粹的數字(或null)進行ifnull判斷,確定是有效的。
4>針對上述問題,採用以下方法也能解決問題mysql