2013-10-11 62 views
0

我有我的MYSQL存儲過程中準備好的語句數量很好。語句有可能變成NULL(動態生成的SQL語句),所以爲了避免運行時異常,我總是使用下面的方法。但由於我正在使用準備好的語句很多,給NULL檢查每個看起來嘈雜的地方。MYSQL - 準備語句NULL處理

SET @s10=CONCAT('UPDATE tlist SET total_count=total_count-1 WHERE group_id =',in_location_id,' AND sub_type=',COMPANY_COUNT,' AND sub_id in (',var_companies,')'); 
    IF(@s10 is NOT NULL) THEN 
     PREPARE stmt FROM @s10; 
     EXECUTE stmt;  
    END IF; 

那麼有沒有其他方法可以將上述代碼模擬成一兩行呢? (做出聲明並一起執行和空處理一步到位?)

我知道我可以運行小子程序並將準備好的語句傳遞給它並執行上面的檢查,但是想知道是否有任何內置MYSQL功能。

謝謝

回答

0

嘗試

SET @s10=CONCAT('UPDATE tlist SET total_count=total_count-1 WHERE group_id =',in_location_id,' 
AND sub_type=',COMPANY_COUNT,' AND sub_id in (',var_companies,')'); 
IF(!ISNULL(@s10) && LENGTH(trim(@s10)) > 0) THEN 
    PREPARE stmt FROM @s10; 
    EXECUTE stmt;  
END IF; 
+0

感謝您的答覆。事實上,我想簡短上面的代碼行。再次感謝 – Bujji