• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql中循环截取用户信息并插入到目标表对应的字段中

mysql中循环截取用户信息并插入到目标表对应的字段中

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql添加字段,mysql增加字段,mysql修改字段类型,mysql删除字段,mysql update多个字段等相关知识,希望本文的分享对您有所帮助

操作环境:有表game_list,字段:uid,score1,score2,seat_id,last_update;
传入参数为i_player_detail ,传入的值为多个用户的id、之前分数、之后分数、座位号,每个用户的数据用分号(;)隔开;
操作目的:将各个用户对应的属性插入到目标表对应的字段中,last_update为数据更新日期;
传入参数i_player_detail ,里面存放多个用户的信息,每个用户的一组数据用分号隔开,每个用户的信息多个,比如
“用户id,score,desk,seat;
用户id,score,desk,seat;……”

-- 使用存储过程
delimiter $$

use `log_pdk`$$

drop procedure if exists `game_c`$$

create procedure `game_c` (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
);

-- declare str varchar(500);-- 用来拼接sql动态语句
declare m_detail varchar(500);
declare m_num tinyint;

-- 当传入的用户信息字符串中含有分号';',进行截取
set m_num = position(';' in str) -- 不存在分号的时候,返回0
while m_num >= 1 do
begin
set @str = 'insert into temp_list values (' + substring(m_detail,1,m_num-1)+')' -- 截取第一个用户的信息(第一个分号前面的字符),插入到临时表
prepare statement1 from @str;
execute statement1;
deallocate prepare statement1;
set m_detail = substring(m_detail,m_num+1); -- 定义除去第一个用户和分号那部分的字符串
set set m_num = position(';' in str);
end while;

-- 从临时表抽出所有字段,添加时间字段,插入到表game_list
INSERT INTO `game_list`(`uid`,`score1`,`score2`,`seat_id`, `last_update`)
SELECT `uid`, `score1`, `score2`, `seat_id`, current_date() 
FROM `temp_list`;
end$$
delimiter ;
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL 替换某字段内部分内容的UPDATE语句
  • MySQL表字段设置默认值(图文教程及注意细节)
  • mysql中合并两个字段的方法分享
  • 在MySQL字段中使用逗号分隔符的方法分享
  • mysql合并多条记录的单个字段去一条记录编辑
  • 批量替换 MySQL 指定字段中的字符串
  • MySql表、字段、库的字符集修改及查看方法
  • MySQL 中查找含有目标字段的表的方法
  • mysql中的保留字段产生的问题
  • Mysql字符串字段判断是否包含某个字符串的2种方法

相关文章

  • 2018-12-05 MongoDB性能测试(1)
  • 2018-12-05SQL Server 7.0 入门(六)
  • 2018-12-05Mysql入门基础 数据库创建篇
  • 2017-05-11Can't connect to MySQL server on 'localhost' (10048)问题解决方法
  • 2018-12-05myeclipse连接MySQL数据库详细步骤
  • 2017-05-11解决mysql不能插入中文Incorrect string value
  • 2018-12-05Mysql5.7在windows7下数据位置修改方法详解
  • 2018-12-05MySQL索引原理和慢查询优化
  • 2017-05-11清空mysql 查询缓存的可行方法
  • 2018-12-05中文Access2000速成教程--1.7 创建索引

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQLServer 2008 Merge语句的OUTPUT功能
    • 简单分析MySQL中的primary key功能
    • mysql 统计函数和group by
    • MySQL中删除重复数据的简单方法
    • SqlServer 2005/2008数据库被标记为“可疑”的解决办法
    • SQL创建的几种存储过程
    • MySQL嵌套事务所遇到的问题的代码实例详解
    • SQL Server下几个危险的扩展存储过程
    • 详解Mysql数据库之Binlog日志使用代码总结
    • 判断字段是否被更新 新旧数据写入Audit Log表中

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有