MySql问题汇总

1.MySql函数中不能使用动态sql

CREATE DEFINER=`root`@`%` PROCEDURE `SP_GetEmpFixedSalary`(id BIGINT(20),#定薪id或者薪档id
entId BIGINT(20),#企业id 
type INT,#自定义或者薪档 
cluName VARCHAR(200), 
OUT salary DECIMAL(9,2))
BEGIN 
#type 1:员工定薪 2: 薪档定薪 
IF(type=1) THEN 
	set @sql = CONCAT('SELECT @salaryTemp := ',cluName,' FROM s_group_emp WHERE ID=? AND ENT_ID=? LIMIT 1'); 
	prepare stmt1 from @sql;
	SET @p2 = id;
	SET @p3 = entId;
	execute stmt1 USING @p2,@p3;
	DEALLOCATE PREPARE stmt1 ; 
ELSEIF(type=2) THEN 
	set @sql = CONCAT('SELECT @salaryTemp := ',cluName,' FROM s_level WHERE LEVEL_ID=? AND ENT_ID=? LIMIT 1'); 
	prepare stmt2 from @sql;
	SET @p2 = id;SET @p3 = entId;
	execute stmt2 USING @p2,@p3;
	DEALLOCATE PREPARE stmt2 ; 
END IF; 
	SET salary=@salaryTemp;
END


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值