2011-10-21 59 views
0

我正在使用子查詢來計算一些子類別計數值。但有時它沒有任何計數值。在這種情況下,我的quesry更新字段值爲空。而不是我需要更新爲零。如何檢查子查詢結果是否爲空或不在sp內?如何檢查查詢結果爲null或不在mysql5 storedprocedure中?

我試過這樣,但它不工作。

SELECT 
    if(sum(sub_category),sum(sub_category),0) 
FROM myobjectcount 
WHERE 1 
GROUP BY category_id 
+0

這是因爲針對'null'的測試不會返回true或false,而是返回null,所以if的任何一部分都不會被執行,而是返回null。 – Johan

回答

3
select ifnull(sum(sub_category),0) from myobjectcount group by category_id; 

IFNULL() control flow function是一個非常方便的MySQL功能。傾向於幫助避免編寫令人討厭的CASE語句!

另外 - where 1謂詞是相當不尋常的。這對我來說似乎是多餘的,所以我已經把它排除在外了。