Mysql数据处理/行转列/列转行/分割/拼接/数据复制汇总
mysql数据处理记录(使用的 Workbench)
- 生成随机数
- 逗号或分号拼接的字符串分割成多行
- 多行数据转化成用逗号拼接的字符串
- 将A表的数据添加到B表
一、生成随机数
生成18位:(19位就加颗0 / 17位就减0)
SELECT FLOOR(+ RAND() * 10000000000000000000)
二、将字符串分割(行转列)
select a.ID,substring_index(substring_index(a.B,',',b.help_topic_id+1),',',-1) as NAME
from
AAA a
join
mysql.help_topic b
on b.help_topic_id < (length(a.B) - length(replace(a.B,',',''))+1)
order by a.ID
这段SQL是用逗号分割, 把(AAA替换成 表名) (B替换成需要分割的字段名) 可直接使用
原理和解析过程去 https://sunjia-704471770-qq-com.iteye.com/blog/1912929
三、用分号拼接 (列转行)
select group_concat(name)name from 表名 group by PARENTUUID(逗号拼接)
分号拼接
select group_concat(name,';')name from 表名 group by PARENTUUID
这样的结果是 A;,B;,C;, 改进:
select REPLACE(group_concat(name,';'),',','')name from 表名 group by PARENTUUID
结果 A;B;C;
四、将A表数据插入到B表
1.表结构与字段都相同
insert into B select * from A
注意:如果B表中已有数据 注意的是避免主键重复 如果报错先排查是否主键重复添加,最好的方法是先把A表的主键约束去掉 并使用 alter table 表名 drop ID 去掉主键再添加(B表ID自增)
2.表结构不同 只添加个别字段
insert into B (字段1,字段2) select 字段1,字段2 from A (如果字段名不一样 例:insert into B (字段1,字段2) select 字段A as 字段1,字段B as 字段2 from A )
补充:在数据数据迁移插入时,可将以上四大点配合使用 有问题评论区见。
注意:本篇文章适合练习,不适合大量数据迁移,若千万级数据请出门右拐.转载请捎带本文链接。
Mysql数据处理/行转列/列转行/分割/拼接/数据复制汇总的更多相关文章
- mysql 多行合并一列
mysql 多行合并一列 使用的函数为: GROUP_CONCAT(exp) 其中exp 的参数类似如下: (field order by field desc separator ';') ...
- MYSQL 多行转多列
mysql 行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行),我觉得这都是一个意思 数据库结构如图: 而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现: 第一 ...
- mysql之行转列与列转行
mysql之行转列与列转行是数据查询的常见操作,以更好的来展示数据,下面就详细说说怎么实现. 行转列 行转列的话,就是将一条一条的行数据记录转换为一条列数据展示,一般来说是根据某一列来做汇总数据的操作 ...
- 关于MySQL的行转列的简单应用(二)---group函数
MySQL的行转列.列转行.连接字符串 concat.concat_ws.group_concat函数用法使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一 ...
- SQL Server 行转列,列转行。多行转成一列
一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name , value = ( STUFF(( SELECT ',' + va ...
- Sql server 中将数据行转列列转行(二)
老规矩,先弄一波测试数据,数据填充代码没有什么意义,先折叠起来: /* 第一步:创建临时表结构 */ CREATE TABLE #Student --创建临时表 ( StuName ), --学生名称 ...
- pandas数据处理基础——筛选指定行或者指定列的数据
pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 ...
- 关于MySQL的行转列的简单应用
sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHA ...
- 行数据库VS列数据库
一.介绍 目前大数据存储有两种方案可供选择:行存储和列存储.业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全.可靠.完整性.从目前发展情况看,关系数据库已经不适应这种巨 ...
随机推荐
- windbg 使用与技巧
基本知识和常用命令 (1) Windbg下载地址http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx 安装完后执行w ...
- PHP 数组转字符串后仍保留数组格式
写此方法的目的是,我想把一个PHP数组配置文件读进程序,添加些配置,然后在写入文件: var_export 方法会把原来的配置打乱(比如数组序号我没有加,他自动给我加上 0,1,2,3...),而且格 ...
- 【记忆化搜索】掷骰子 hpuoj
B. 掷骰子 单点时限: 2.0 sec 内存限制: 512 MB 骰子,中国传统民间娱乐用来投掷的博具,早在战国时期就已经被发明. 现在给你 n 个骰子,求 n 个骰子掷出点数之和为 a 的概率是多 ...
- MongoDB Day 1
创建数据库 db.createCollection("user"); 插入字段 //----insert------- db.user.insert({uid:1, user_co ...
- Python爬虫视频教程
├─第1章_[第0周]网络爬虫之前奏 │ ├─第1节_"网络爬虫"课程内容导学 │ │ 第1部分_全课程内容导学.mp4 │ │ 第2部分_全课程内容导学(WS00单元)学习资料. ...
- Git 实用技巧:git stash
我们经常会遇到这样的情况: 正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度保存起来.然后切换 ...
- 性能测试学习第六天-----JMeter拓展应用
一.TCP取样器 服务器名称或IP:填写socket接口的ip 端口号:写socket接口的端口号 Re-use connection:是否重用链接,如果选择,同一个线程执行的所有请求都会使用一个tc ...
- python相关,各种命令集合
PS: cmd必须管理员身份运行 python版本 2.7 可能会出现编码问题:在 Lib/site-packages 新建文件 sitecustomize.py import sys sys.s ...
- 一文了解:Redis主从复制
Redis主从复制 主从复制 主从复制,将一台Redis服务器的数据,复制到其他Redis服务器.前者称为主(master)节点,后者称为从(slave)节点 . 在默认的情况下,Redis都是主节点 ...
- Spring学习之旅(十四)--缓存
数据库的读写并发一直都是应用性能的瓶颈所在之一,针对改动频率很小的数据我们应该将他存放到缓存中,减少与数据库的交互. 启用对缓存的支持 Spring 对缓存的支持有两种方式: 注解驱动的缓存 XML ...