mysql数据处理记录(使用的 Workbench)

  1. 生成随机数
  2. 逗号或分号拼接的字符串分割成多行
  3. 多行数据转化成用逗号拼接的字符串
  4. 将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数据处理/行转列/列转行/分割/拼接/数据复制汇总的更多相关文章

  1. mysql 多行合并一列

    mysql  多行合并一列 使用的函数为: GROUP_CONCAT(exp) 其中exp 的参数类似如下: (field order  by field   desc  separator ';') ...

  2. MYSQL 多行转多列

    mysql 行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行),我觉得这都是一个意思 数据库结构如图: 而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现: 第一 ...

  3. mysql之行转列与列转行

    mysql之行转列与列转行是数据查询的常见操作,以更好的来展示数据,下面就详细说说怎么实现. 行转列 行转列的话,就是将一条一条的行数据记录转换为一条列数据展示,一般来说是根据某一列来做汇总数据的操作 ...

  4. 关于MySQL的行转列的简单应用(二)---group函数

    MySQL的行转列.列转行.连接字符串  concat.concat_ws.group_concat函数用法使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一 ...

  5. SQL Server 行转列,列转行。多行转成一列

    一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name , value = ( STUFF(( SELECT ',' + va ...

  6. Sql server 中将数据行转列列转行(二)

    老规矩,先弄一波测试数据,数据填充代码没有什么意义,先折叠起来: /* 第一步:创建临时表结构 */ CREATE TABLE #Student --创建临时表 ( StuName ), --学生名称 ...

  7. pandas数据处理基础——筛选指定行或者指定列的数据

    pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 ...

  8. 关于MySQL的行转列的简单应用

    sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHA ...

  9. 行数据库VS列数据库

    一.介绍 目前大数据存储有两种方案可供选择:行存储和列存储.业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全.可靠.完整性.从目前发展情况看,关系数据库已经不适应这种巨 ...

随机推荐

  1. 深入理解JVM虚拟机开篇:JVM介绍与知识脉络梳理

    微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔 ...

  2. Spring Boot 统一异常这样处理和剖析,安否?

    话说异常 「欲渡黄河冰塞川,将登太行雪满天」,无论生活还是计算机世界难免发生异常,上一篇文章RESTful API 返回统一JSON数据格式 说明了统一返回的处理,这是请求一切正常的情形:这篇文章将说 ...

  3. JSP引擎、JSP容器、Web服务器

    JSP引擎与JSP容器指的都是同一样的东西,他们都是用来同一管理和运行Web引用程序的“软件”.常见的JSP引擎有Tomcat.JRun.Resin 广义上来说,JSP引擎是用来管理和运行Web应用程 ...

  4. c语言的输出

    Cpp是c plus plus Cpp c++的源文件 c++支持c语言的语法 %x是十六进制x后面输出小写%X输出的结果是大写. %o是八进制. %lf是双精度double,默认小数点后六位,输出最 ...

  5. freemarker导出复杂样式的Excel

    freemarker导出复杂样式的Excel 代码地址: gitee https://gitee.com/suveng/demo/tree/master/chapter.002 代码存放于demo下面 ...

  6. js 分享一个 时钟效果

    <style>        *{            margin: 0;            padding: 0;        }        #outLine{       ...

  7. Linux shell 获得字符串所在行数及位置

    shell 获得字符串所在行数及位置 01 获取字符串所在的行数 方式一:用grep -n [root@root]# cat test apple bit create delect exe flow ...

  8. Unity之与Web的交互

    一.下载,安装,配置,启动Apache 1.进入官网下载Apache 2.解压到根目录 3.记事本打开如下配置文件 4.安装apache 5.出现错误:(该错误是由于端口被占用引起的) 6.修改配置文 ...

  9. canvas 的基本使用

    一.canvas的介绍 canvas是html5出现的新标签,像所有的DOM对象一样它有自己本身 的属性.方法和事件,其中就有绘图的方法,js能够调用它来进行绘图.canvas只有两个属性,而且是可选 ...

  10. Delphi - StringReplace用法

    StringReplace用法 在开发过程中,有时候我们需要对字符串进行替换操作,屏蔽或者和谐某些字符,可使用Delphi自带的函数StringReplace函数. 通过代码进行说明: //函数原型 ...