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. GoAccess 分析 Nginx 日志

    0x00 事件 帮助朋友搭建了博客,运行过了一段时间,准备发个网站分析报告给他. 有效的数据只有 Nginx 的访问日志,于是使用决定 GoAccess 工具对这个日志进行分析, 0x01 安装 吾使 ...

  2. 7.15 迭代器 for循环的本质 生成器

    迭代器 迭代:更新换代的过程,每次的迭代都必须基于上一次的结果 迭代器:迭代取值的工具 作用 迭代器提供了一种不依赖于索引取值的方式 根据以上对于迭代的描述,如果只是简单的重复,不算迭代,如下: n ...

  3. java算法(4)---静态内部类实现雪花算法

    静态内部类单例模式实现雪花算法 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主键自增:1.自增ID容易被爬虫遍历数据.2.分表分库会有ID冲突. UUID: 1. ...

  4. Appium+python自动化(三十三)- 环境(超详解)

    简介 在前边所有涉及启动app的时候有这样一行代码driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps),很多小 ...

  5. npm执行命令行报错

    今天在学习react-router时候使用命令npm start 报了一个错误 npm ERR! missing script: start npm ERR! A complete log of th ...

  6. 线上调试工具 jvm-sandbox使用

    jvm-sandbox使用 1 快速安装 1.1 下载解压 # 下载最新版本的JVM-SANDBOX wget http://ompc.oss-cn-hangzhou.aliyuncs.com/jvm ...

  7. C++ 重载运算符(详)

    C++ 重载运算符 C 重载运算符 一重载函数 1例程 2备注 二重载运算符 11 二元运算符重载 11 一元运算符重载 111 -- 2备注 3 特殊运算符重载 31 号运算符 32 下标运算符 3 ...

  8. MySql定时器,亲测可用

    1. 查看数据库的event功能是否开启,在MySql中event默认是关闭的,需要查看并且要确保event处于开启状态 sql:show VARIABLES LIKE '%sche%'; 如果eve ...

  9. Leetcode之回溯法专题-212. 单词搜索 II(Word Search II)

    Leetcode之回溯法专题-212. 单词搜索 II(Word Search II) 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词. 单 ...

  10. JAVA实现读取图片

    话不读说  直接上代码 package cn.kgc.ssm.common; import java.io.*; /** * @author * @create 2019-08-15 9:36 **/ ...