1. 程式人生 > >mysql 存儲過程動態拼接sql並執行賦值

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

pro roc ddt reat create 不用 lec efi 語句

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;

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