mysql 存儲過程動態拼接sql並執行賦值


CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(in _xnb varchar(50))
BEGIN
    ## 定義變量
    DECLARE _num FLOAT(14,6) DEFAULT 0;
    ## @表示全局變量 相當於php $
    ## 拼接賦值 INTO 必須要用全局變量不然語句會報錯
    SET @strsql = CONCAT('SELECT SUM(',_xnb,') INTO @tnum FROM btc_user_coin');
    ## 預處理需要執行的動態SQL,其中stmt是一個變量
    PREPARE stmt FROM @strsql;  
    ## 執行SQL語句
    EXECUTE stmt;  
    ## 釋放掉預處理段
    deallocate prepare stmt;
    ## 賦值給定義的變量
    SET _num = @tnum;
    
    SELECT _num
 
END;;

如果是where 查詢 的話,直接就寫 不用拼接sql

SELECT SUM(fee) INTO _trade_fee_buy FROM btc_myzr WHERE `coinname`=_xnb AND addtime BETWEEN _beg AND _bend;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM