今天使用mysql的if()函數

今天使用mysql的if()函數,搭配count()函數來計算某個欄位的數量,例如欄位名是reg_date,函數用法是if(reg_date is null, ”,count(reg_date)) as nums。意思就是當reg_datenull的時候就什麼都不做,如果不是null就累計數量。

因為是在select敘述下所使用,所以if傳回的結果就是一個欄位,所以加上as重新命名為nums

count是mysql的集合函數,也就是在有group by的條件下使用的函數,其實到目前為止對這類集合函數的使用及概念還不是太清楚,也許是因為一開始碰的資料庫軟體是Access,那時候是使用拖拉的方式在查詢,不常直接碰觸sql語法,再加上對於php的count的印象,所以對於在mysql使用集合函數時總是擔心結果異常的狀況會發生。

不過今天使用的結果是小小增加了自己在使用這類集合函數的信心了。今天觀察它執行的結果,集合函數應該是在select結果時逐欄、逐列執行,最後才呈現出運算的結果。如果按這個原理來看待集合函數運作,這樣應該就會比較清楚。

在〈今天使用mysql的if()函數〉中有 1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *