mysql 存儲過程動態拼接sql並執行賦值
阿新 • • 發佈:2019-01-11
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並執行賦值