创建函数
DROP PROCEDURE IF EXISTS `all_userlist_money`;
#对应版更新任意用户余额 存储过程 2019年7月19日 01:52:48 原始
DELIMITER $$
CREATE PROCEDURE all_userlist_money(IN UserIdTEXT,IN UserMoneyTEXT,IN sSplitTEXT)
SQL SECURITY INVOKER #允许其他用户运行
BEGIN
DECLARE e_codeINT DEFAULT 0;#初始化报错码为0
DECLARE resultVARCHAR(256)CHARACTER set utf8;#初始化返回结果,解决中文乱码问题
DECLARE LengthINT DEFAULT 0;/*定义长度*/
DECLARE UserIdStringTEXT;/*定义初始数组字符*/
DECLARE UserIdStrTEXT;/*定义初始数组字符*/
DECLARE UserMoneyStringTEXT;/*定义初始数组字符*/
DECLARE UserMoneyStrTEXT;/*定义初始字符*/
/*DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET e_code=1;#遇到错误后继续执行;(需要返回执行结果时用这个)*/
SET Length =LENGTH(UserId) -LENGTH(REPLACE(UserId,sSplit,''));/*获得数组长度*/
SET UserIdString = UserId;
SET UserMoneyString = UserMoney;
WHILE Length >0 DO
set UserIdStr =substr(UserIdString,1,instr(UserIdString,sSplit)-1);-- 第一组会员ID
set UserIdString =substr(UserIdString,length(UserIdStr)+length(sSplit)+1);-- 后期的会员ID字符串
set Length = Length -1;
set @str =trim(UserIdStr);
set UserMoneyStr =substr(UserMoneyString,1,instr(UserMoneyString,sSplit)-1);-- 第一组金额
set UserMoneyString =substr(UserMoneyString,length(UserMoneyStr)+length(sSplit)+1);-- 后面的金额字符串
set @usermoney =trim(UserMoneyStr);
UPDATE tplay_userSET ep=ep+@usermoneyWHERE `user_id` = @str;
END WHILE;
SELECT result;
END $$
DELIMITER ;