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;

 

转载于:https://www.cnblogs.com/pejsidney/p/10252660.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值