| 函數 | 參數數量 | 行為 | 備註 |
|---|---|---|---|
| COALESCE | 多個 | 返回第一個非 NULL 值,全 NULL 則返回 NULL | 標準 SQL,推薦使用 |
| IFNULL | 2 | 同 COALESCE 兩參數版 | MySQL 專有 |
| IF | 3 | expr1 不為 NULL 且不為 0 → 返回 expr2,否則 expr3 | 類三元運算符 |
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;
場景:統計各品牌店鋪數,無店鋪品牌 COUNT 為 NULL,用 COALESCE(t.cous, 0) 轉為 0,利於排序與前端顯示。
-- 多重兜底:優先取 t.cous,否則 t.cnt,最後 0
COALESCE(t.cous, t.cnt, 0)
-- 搭配 IF 實現條件邏輯
IF(t.cous > 10, '熱門', '普通')