記一次mysql同字段不同值更新方法

創(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 ;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容