作用:

  解决一开始数据库建立不合理造成的字段冗余,从而提取部分字段,数据迁移、拼接字符串的功能。

格式:

  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做字符串拼接和数据迁移的更多相关文章

  1. $.ajax从后台取数据 然后做字符串拼接的例子

  2. 使用 SQL的 for xml path来进行字符串拼接

    本篇主要讲怎么利用SQL的FOR XML PATH 参数来进行字符串拼接,FOR XML PATH的用法很简单,它会以xml文件的形式来返回数据. 我的讲解步骤: 1:构造初始数据 2:提出问题 3: ...

  3. StringBuilder(字符串拼接类)

    StringBuilder是在using System.Text命名空间下的一个成员. 在做字符串拼接的时候,因为字符串是引用类型,新的字符串是会再内存中创建的,所以用+号拼接字符串是比较耗效率的. ...

  4. StringBuilder字符串拼接类

    StringBuilder StringBuilder是在using System.Text命名空间下的一个成员. 在做字符串拼接的时候,因为字符串是引用类型,新的字符串是会再内存中创建的,所以用+号 ...

  5. HBase存储剖析与数据迁移

    1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储.所以,对于结构化的SQL语言查询,HBase自身并没有接口支持.在大数据应用中,虽然也有SQL查询引擎可以查询H ...

  6. python语法_字符串拼接

    +号可以用来做字符串拼接 print("abc"+"efg"+"def") abcefgdef 字符串(str)与数字(int)不能使用+进 ...

  7. C# 字符串拼接性能探索

    本文通过ANTS Memory Profiler工具探索c#中+.string.Concat.string.Format.StringBuilder.Append四种方式进行字符串拼接时的性能. 本文 ...

  8. mybatis中使用mysql的模糊查询字符串拼接(like)

    方法一: <!-- 根据hid,hanme,grade,模糊查询医院信息--> 方法一: List<Hospital> getHospitalLike(@Param(" ...

  9. 字符串拼接原理 javac 和 javap

    一.新建一个 Test1 类 public class Test1 { public static void main(String[] args) { String a = "a" ...

随机推荐

  1. Spark之 Spark Streaming整合kafka(并演示reduceByKeyAndWindow、updateStateByKey算子使用)

    Kafka0.8版本基于receiver接受器去接受kafka topic中的数据(并演示reduceByKeyAndWindow的使用) 依赖 <dependency> <grou ...

  2. Android开发实战之底部Dialog弹出效果

    在Android开发中,有很多情况下我们需要使用到对话框,遗憾的是,安卓自带的对话框样式不能满足我们实际的需要,所以往往需要我们自定义对话框,具体做法:写一个对话框继承自Dialog实现他的一个构造方 ...

  3. securecrt免密码登录

    一.前言 1. 环境 客户端系统:win7 securecrt版本:6.0.2 服务端系统:centos6.5 服务端ssh实现:openssh 2. 关于认证方式 我们知道ssh一般都会提供多种客户 ...

  4. python-nmap模块常用方法说明

    一.模块常用方法说明 本节介绍python-nmap模块的两个常用类,一个为PortScanner()类,实现一个nmap工具的端口扫描功能封装:另一个为PortScannerHostDict()类, ...

  5. 图解Git

    转载自http://marklodato.github.io/visual-git-guide/index-zh-cn.html#diff 图解Git 其他语言: Deutsch English Es ...

  6. VIO系统的IMU与相机时间偏差标定

      视觉里程计(VIO)作为一种空间定位方法,广泛应用于VR/AR.无人驾驶和移动机器人,比如近年火热的苹果 AR-Kit和谷歌AR-Core都使用了VIO技术进行空间定位.通常,VIO系统忽略IMU ...

  7. SUSE Linux--zypper程序包管理(实战命令总结)

    (1)zypper ar iso:/?iso=/media/SOFTWARE/openSUSE-11.4-DVD-i586.iso DVDISO 新添加本地iso文件为安装源,名称和别名均为DVDIS ...

  8. 实践作业3:白盒测试----第三次小组会DAY8

    我们小组于12月11日在东九教学楼召开了会议,小组第二次会议中就讨论了被测系统中风险最高的模块,于是选择管理员的教师添加模块,针对代码展开静态评审.这一次会议,小组主要讨论了应该从哪些方面来测评代码的 ...

  9. eclipse netbeans 代码模板

    eclipse  代码模板  插入slf4j ${:import(org.slf4j.Logger,org.slf4j.LoggerFactory)} private static final Log ...

  10. paperfree

    主题:免费的论文查重网站 正文:给大家推荐一个免费的论文查重网站PaperFree:http://www.paperfree.cn