使用concat做字符串拼接和数据迁移
作用:
解决一开始数据库建立不合理造成的字段冗余,从而提取部分字段,数据迁移、拼接字符串的功能。
格式:
concat(字段1,'间隔符',字段2....)
concat_ws('间隔符',字段1,字段2)
数据准备:
#创建表
create table employee(
id int not null unique auto_increment,
name varchar(20) not null,
sex enum('male','female') not null default 'male', #大部分是男的
age int(3) unsigned not null default 28,
hire_date date not null,
post varchar(50),
post_comment varchar(100),
salary double(15,2),
office int, #一个部门一个屋子
depart_id int
);
#插入记录
#三个部门:教学,销售,运营
insert into employee(name,sex,age,hire_date,post,salary,office,depart_id) values
('egon','male',18,'','老男孩驻沙河办事处外交大使',7300.33,401,1), #以下是教学部
('alex','male',78,'','teacher',1000000.31,401,1),
('wupeiqi','male',81,'','teacher',8300,401,1),
('yuanhao','male',73,'','teacher',3500,401,1),
('liwenzhou','male',28,'','teacher',2100,401,1),
('jingliyang','female',18,'','teacher',9000,401,1),
('jinxin','male',18,'','teacher',30000,401,1),
('成龙','male',48,'','teacher',10000,401,1), ('歪歪','female',48,'','sale',3000.13,402,2),#以下是销售部门
('丫丫','female',38,'','sale',2000.35,402,2),
('丁丁','female',18,'','sale',1000.37,402,2),
('星星','female',18,'','sale',3000.29,402,2),
('格格','female',28,'','sale',4000.33,402,2), ('张野','male',28,'','operation',10000.13,403,3), #以下是运营部门
('程咬金','male',18,'','operation',20000,403,3),
('程咬银','female',18,'','operation',19000,403,3),
('程咬铜','male',18,'','operation',18000,403,3),
('程咬铁','female',18,'','operation',17000,403,3)
;
操作示例:
只做字符串的拼接:
mysql> select concat('name:',name) as mingzi,concat('sex:',sex) from emp;
+-----------------+--------------------+
| mingzi | concat('sex:',sex) |
+-----------------+--------------------+
| name:egon | sex:male |
| name:alex | sex:male |
| name:wupeiqi | sex:male |
| name:yuanhao | sex:male |
| name:liwenzhou | sex:male |
| name:jingliyang | sex:female |
| name:jinxin | sex:male |
| name:成龙 | sex:male |
| name:歪歪 | sex:female |
| name:丫丫 | sex:female |
| name:丁丁 | sex:female |
| name:星星 | sex:female |
| name:格格 | sex:female |
| name:张野 | sex:male |
| name:程咬金 | sex:male |
| name:程咬银 | sex:female |
| name:程咬铜 | sex:male |
| name:程咬铁 | sex:female |
+-----------------+--------------------+
18 rows in set (0.00 sec)
数据迁移(同时进行字符串拼接):
mysql> create table aa select concat('name:',name) as mingzi,concat('sex:',sex) from emp;
Query OK, 18 rows affected (0.03 sec)
Records: 18 Duplicates: 0 Warnings: 0 mysql>
mysql> show tables;
+---------------+
| Tables_in_db2 |
+---------------+
| aa |
| big_data |
| emp |
+---------------+
3 rows in set (0.00 sec) mysql> select * from aa ;
+-----------------+--------------------+
| mingzi | concat('sex:',sex) |
+-----------------+--------------------+
| name:egon | sex:male |
| name:alex | sex:male |
| name:wupeiqi | sex:male |
| name:yuanhao | sex:male |
| name:liwenzhou | sex:male |
| name:jingliyang | sex:female |
| name:jinxin | sex:male |
| name:成龙 | sex:male |
| name:歪歪 | sex:female |
| name:丫丫 | sex:female |
| name:丁丁 | sex:female |
| name:星星 | sex:female |
| name:格格 | sex:female |
| name:张野 | sex:male |
| name:程咬金 | sex:male |
| name:程咬银 | sex:female |
| name:程咬铜 | sex:male |
| name:程咬铁 | sex:female |
+-----------------+--------------------+
18 rows in set (0.00 sec)
使用concat做字符串拼接和数据迁移的更多相关文章
- $.ajax从后台取数据 然后做字符串拼接的例子
- 使用 SQL的 for xml path来进行字符串拼接
本篇主要讲怎么利用SQL的FOR XML PATH 参数来进行字符串拼接,FOR XML PATH的用法很简单,它会以xml文件的形式来返回数据. 我的讲解步骤: 1:构造初始数据 2:提出问题 3: ...
- StringBuilder(字符串拼接类)
StringBuilder是在using System.Text命名空间下的一个成员. 在做字符串拼接的时候,因为字符串是引用类型,新的字符串是会再内存中创建的,所以用+号拼接字符串是比较耗效率的. ...
- StringBuilder字符串拼接类
StringBuilder StringBuilder是在using System.Text命名空间下的一个成员. 在做字符串拼接的时候,因为字符串是引用类型,新的字符串是会再内存中创建的,所以用+号 ...
- HBase存储剖析与数据迁移
1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储.所以,对于结构化的SQL语言查询,HBase自身并没有接口支持.在大数据应用中,虽然也有SQL查询引擎可以查询H ...
- python语法_字符串拼接
+号可以用来做字符串拼接 print("abc"+"efg"+"def") abcefgdef 字符串(str)与数字(int)不能使用+进 ...
- C# 字符串拼接性能探索
本文通过ANTS Memory Profiler工具探索c#中+.string.Concat.string.Format.StringBuilder.Append四种方式进行字符串拼接时的性能. 本文 ...
- mybatis中使用mysql的模糊查询字符串拼接(like)
方法一: <!-- 根据hid,hanme,grade,模糊查询医院信息--> 方法一: List<Hospital> getHospitalLike(@Param(" ...
- 字符串拼接原理 javac 和 javap
一.新建一个 Test1 类 public class Test1 { public static void main(String[] args) { String a = "a" ...
随机推荐
- 使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
平时我们开发使用的是32位的PC机,所以安装的也是Oracle32位的客户端.但是一般服务器都是64位的,安装的也是64位的Oracle客户端,如果要部署使用Oracle.DataAccess连接Or ...
- python 文件的读取&更新
[python 文件的读取&更新] 任务抽象: 读取一个文件, 更新内容后, 重新写入文件. 实际应用: 磁盘上的一个配置文件, 读入内存后为一个dict, 对dict更新后重新写入磁盘. d ...
- Android Studio 无法正确引入包内存在的类
Android Studio 无法识别同一个 package 里的类,显示为红色,但是 compile 没有问题. 重启,rebuild,clean都没有用. 多半是因为 Android Studio ...
- 【Unity】Collider随骨骼动画运动
Collider位置和角色的动作不一致会导致Mesh互相镶嵌,让游戏失真. 想象一扇门的Collider没随它打开的动画移动,结果就是你看着门开着却穿不过去. 而我遇到的情况是: 角色在执行跑 ...
- [erlang 002]gen_server中何时会跑到terminate函数
一.从start方法产出的独立gen_server进程 实验代码: %%%-------------------------------------- %%% @Module : %%% @Auth ...
- C#异步中的Task,async,await
class Program { static void Main(string[] args) { Console.WriteLine("我是主线程,线程ID:{0}", Thre ...
- Loadrunner11无法在win7 64位上启用ie解决办法
Loadrunner11无法在win7 64位上启用ie解决办法 1.loadrunner11在win7 64位上默认启用的是32位的那个IE浏览器,路径:C:\Program Files (x86) ...
- [C++] Const Summary (mind map)
Const Summary
- smarty内置函数、自定义函数
1.把字符串里的d字母替换成h格式:{'d'|str_replace:'h':$str}; d要查找的字符 h要替换的字符 $str字符串 2.function test($param){$p1=$p ...
- CEPH集群RBD快照创建、恢复、删除、克隆(转)
Ceph支持一个非常好的特性,以COW(写时复制)的方式从RBD快照创建克隆,在Ceph中被称为快照分层.分层特性允许用户创建多个CEPH RBD克隆实例.这些特性应用于OpenStack等云平台中 ...