mysql中 将传入的多个用户信息,插入到目标表中(方法二)

操作环境:有表game_list,字段:uid,score1,score2,seat_id,last_update;
 传入参数为i_player_detail ,传入的值为多个用户的id、之前分数、之后分数、座位号,每个用户的数据用分号(;)隔开;
操作目的:将各个用户对应的属性插入到目标表对应的字段中,last_update为数据更新日期;


delimiter 

use `mysql`

drop procedure if exists `game_c`


create procedure `game_d`(in i_player_detail varchar(500))
sql security invoker
begin
DROP TABLE IF EXISTS `temp_list`;
    CREATE TEMPORARY TABLE `temp_list`(
        `uid` INT(10) UNSIGNED NOT NULL,
        `score1` INT(10) UNSIGNED NOT NULL,
        `score2` INT(10) UNSIGNED NOT NULL,
        `seat_id` TINYINT(3) UNSIGNED NOT NULL
    );
-- 直接将传入的字符串拼接sql语句,插入到临时表;
SET m_player_detail = REPLACE(i_player_detail,';','),(');

SET @sql_str = CONCAT ('INSERT INTO `temp_list` VALUES (',m_player_detail,')');
  PREPARE stm1 FROM @sql_str;
  EXECUTE stm1;
  DEALLOCATE PREPARE stm1;
-- 再从临时表中抽取数据,插入到目标表game_list
INSERT INTO `game_list`(`uid`,`score1`,`score2`,`seat_id`, `last_update`)
        SELECT `uid`, `score1`, `score2`, `seat_id`, m_now FROM `temp_list`;
end

delimiter ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值