創(chuàng)建函數(shù)
DROP PROCEDURE IF EXISTS `all_userlist_money`;
#對應(yīng)版更新任意用戶余額 存儲過程 2019年7月19日 01:52:48 原始
DELIMITER $$
CREATE PROCEDURE all_userlist_money(IN UserIdTEXT,IN UserMoneyTEXT,IN sSplitTEXT)
SQL SECURITY INVOKER #允許其他用戶運(yùn)行
BEGIN
DECLARE e_codeINT DEFAULT 0;#初始化報錯碼為0
DECLARE resultVARCHAR(256)CHARACTER set utf8;#初始化返回結(jié)果,解決中文亂碼問題
DECLARE LengthINT DEFAULT 0;/*定義長度*/
DECLARE UserIdStringTEXT;/*定義初始數(shù)組字符*/
DECLARE UserIdStrTEXT;/*定義初始數(shù)組字符*/
DECLARE UserMoneyStringTEXT;/*定義初始數(shù)組字符*/
DECLARE UserMoneyStrTEXT;/*定義初始字符*/
/*DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET e_code=1;#遇到錯誤后繼續(xù)執(zhí)行;(需要返回執(zhí)行結(jié)果時用這個)*/
SET Length =LENGTH(UserId) -LENGTH(REPLACE(UserId,sSplit,''));/*獲得數(shù)組長度*/
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 ;