MySQL Left JOIN時指定NULL列返回特定值

我們有時會有這樣的應用,需要在sql的left join時,需要使值爲NULL的列不返回NULL而時某個特定的值,比如0

這個時候,用is_null(field,0)是行不通的,會報錯的,可以用ifnull實現,但是COALESE似乎更符合標準。

 

coalesce   函數可以接受多個參數,將會返回這些參數中第一個非NULL的值,若提供的參數全部爲NULL,則返回NULL
ifnull  函數和coalesce功能一樣,只是只可以接受兩個參數
if  函數接受三個參數,實現類似於三元判斷符(?:)的功能,即第一個參數不爲NULL且不爲0時,返回第二個參數,否則返回第三個參數

 

SELECT a.*,coalesce(t.cous,0) as count FROM brand as a 
left join (select brandid as bid,count(1) as cous from shopbrand group by brandid) t on a.brandid=t.bid 
ORDER BY count DESC LIMIT 0,20


上述語法是做一個統計,本身會返回NULL,但是爲空的話並不是一個好的做法,所以用coalesce來解決

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章