MySQL Left JOIN時指定NULL列返回特定值詳解
更新時間:2013年07月02日 11:37:34 作者:
我們有時會有這樣的應(yīng)用,需要在sql的left join時,需要使值為NULL的列不返回NULL而時某個特定的值,比如0。這個時候,用is_null(field,0)是行不通的,會報錯的,可以用ifnull實現(xiàn),但是COALESE似乎更符合標(biāo)準(zhǔn)
coalesce 函數(shù)可以接受多個參數(shù),將會返回這些參數(shù)中第一個非NULL的值,若提供的參數(shù)全部為NULL,則返回NULL
ifnull 函數(shù)和coalesce功能一樣,只是只可以接受兩個參數(shù)
if 函數(shù)接受三個參數(shù),實現(xiàn)類似于三元判斷符(?:)的功能,即第一個參數(shù)不為NULL且不為0時,返回第二個參數(shù),否則返回第三個參數(shù)
復(fù)制代碼 代碼如下:
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
上述語法是做一個統(tǒng)計,本身會返回NULL,但是為空的話并不是一個好的做法,所以用coalesce來解決
您可能感興趣的文章:
- 超詳細mysql left join,right join,inner join用法分析
- mysql not in、left join、IS NULL、NOT EXISTS 效率問題記錄
- 深入理解mysql之left join 使用詳解
- MySQL在右表數(shù)據(jù)不唯一的情況下使用left join的方法
- MySQL表LEFT JOIN左連接與RIGHT JOIN右連接的實例教程
- 解析mysql left( right ) join使用on與where篩選的差異
- mysql多個left join連接查詢用法分析
- MySQL利用profile分析慢sql詳解(group left join效率高于子查詢)
- MySQL的LEFT JOIN表連接的進階學(xué)習(xí)教程
- MySQL聯(lián)表查詢基本操作之left-join常見的坑
相關(guān)文章
MySQL Delete 刪數(shù)據(jù)后磁盤空間未釋放的原因
這篇文章主要介紹了MySQL Delete 刪數(shù)據(jù)后磁盤空間未釋放的原因,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下2021-05-05MySQL數(shù)據(jù)類型之淺談字符串(string)
這篇文章主要介紹了MySQL數(shù)據(jù)類型之字符串(string)的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10