zoukankan      html  css  js  c++  java
  • 使用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,'20170301','老男孩驻沙河办事处外交大使',7300.33,401,1), #以下是教学部
    ('alex','male',78,'20150302','teacher',1000000.31,401,1),
    ('wupeiqi','male',81,'20130305','teacher',8300,401,1),
    ('yuanhao','male',73,'20140701','teacher',3500,401,1),
    ('liwenzhou','male',28,'20121101','teacher',2100,401,1),
    ('jingliyang','female',18,'20110211','teacher',9000,401,1),
    ('jinxin','male',18,'19000301','teacher',30000,401,1),
    ('成龙','male',48,'20101111','teacher',10000,401,1),
    
    ('歪歪','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门
    ('丫丫','female',38,'20101101','sale',2000.35,402,2),
    ('丁丁','female',18,'20110312','sale',1000.37,402,2),
    ('星星','female',18,'20160513','sale',3000.29,402,2),
    ('格格','female',28,'20170127','sale',4000.33,402,2),
    
    ('张野','male',28,'20160311','operation',10000.13,403,3), #以下是运营部门
    ('程咬金','male',18,'19970312','operation',20000,403,3),
    ('程咬银','female',18,'20130311','operation',19000,403,3),
    ('程咬铜','male',18,'20150411','operation',18000,403,3),
    ('程咬铁','female',18,'20140512','operation',17000,403,3)
    ;

      操作示例:

      只做字符串的拼接:

     1 mysql> select concat('name:',name) as mingzi,concat('sex:',sex) from  emp;
     2 +-----------------+--------------------+
     3 | mingzi          | concat('sex:',sex) |
     4 +-----------------+--------------------+
     5 | name:egon       | sex:male           |
     6 | name:alex       | sex:male           |
     7 | name:wupeiqi    | sex:male           |
     8 | name:yuanhao    | sex:male           |
     9 | name:liwenzhou  | sex:male           |
    10 | name:jingliyang | sex:female         |
    11 | name:jinxin     | sex:male           |
    12 | name:成龙       | sex:male           |
    13 | name:歪歪       | sex:female         |
    14 | name:丫丫       | sex:female         |
    15 | name:丁丁       | sex:female         |
    16 | name:星星       | sex:female         |
    17 | name:格格       | sex:female         |
    18 | name:张野       | sex:male           |
    19 | name:程咬金     | sex:male           |
    20 | name:程咬银     | sex:female         |
    21 | name:程咬铜     | sex:male           |
    22 | name:程咬铁     | sex:female         |
    23 +-----------------+--------------------+
    24 18 rows in set (0.00 sec)

      数据迁移(同时进行字符串拼接):

     1 mysql> create table aa select concat('name:',name) as mingzi,concat('sex:',sex) from  emp;
     2 Query OK, 18 rows affected (0.03 sec)
     3 Records: 18  Duplicates: 0  Warnings: 0
     4 
     5 mysql>
     6 mysql> show tables;
     7 +---------------+
     8 | Tables_in_db2 |
     9 +---------------+
    10 | aa            |
    11 | big_data      |
    12 | emp           |
    13 +---------------+
    14 3 rows in set (0.00 sec)
    15 
    16 mysql> select * from aa ;
    17 +-----------------+--------------------+
    18 | mingzi          | concat('sex:',sex) |
    19 +-----------------+--------------------+
    20 | name:egon       | sex:male           |
    21 | name:alex       | sex:male           |
    22 | name:wupeiqi    | sex:male           |
    23 | name:yuanhao    | sex:male           |
    24 | name:liwenzhou  | sex:male           |
    25 | name:jingliyang | sex:female         |
    26 | name:jinxin     | sex:male           |
    27 | name:成龙       | sex:male           |
    28 | name:歪歪       | sex:female         |
    29 | name:丫丫       | sex:female         |
    30 | name:丁丁       | sex:female         |
    31 | name:星星       | sex:female         |
    32 | name:格格       | sex:female         |
    33 | name:张野       | sex:male           |
    34 | name:程咬金     | sex:male           |
    35 | name:程咬银     | sex:female         |
    36 | name:程咬铜     | sex:male           |
    37 | name:程咬铁     | sex:female         |
    38 +-----------------+--------------------+
    39 18 rows in set (0.00 sec)
  • 相关阅读:
    最长公共前缀
    无重复字符的最长子串
    文章采集代码
    网络验证常见的攻击方式与防御手段
    初创公司如何避免服务器被攻击
    拒绝ssh远程暴力破解
    我公司开了7年,靠的就是这套顶级销售打法撑下来!
    顶级销售的十个习惯,轻松签下百万千万合同!(值得背下来)
    顶级销售高手总结的 9 个方面
    一位顶级销售高手总结的“销售心得”!
  • 原文地址:https://www.cnblogs.com/liuyinzhou/p/8058134.html
Copyright © 2011-2022 走看看