分享

mysql下的将一个字段名的值复制到另一个字段名中(批量更新数据)

 quasiceo 2014-12-13

mysql下的将一个字段名的值复制到另一个字段名中(批量更新数据)3

由于业务需求的更改,将原本两个下拉框合并成为一个下拉框,数据库的一些字段不在需要,而将不需要的字段对应的数据复制到其它字段中去,保证数据不丢失。类似
Java代码  收藏代码
  1. update crm_activity set entityType = 1,entityID = (select linkID from crm_activity where linkType = 2 ) ,entityName = (select linkName from crm_activity where linkType = 2)  where linkType = 2  

问题补充:
LeeYee 写道
Sql代码  收藏代码
  1. update crm_activity  set entityType = 1, entityID = linkID ,entityName = linkName   


这个应该是你要的吧!



如果两个字段的值组合到一个字段中去

update crm_activity set entityType = entityID + entityName; 这样是不行的。

问题补充:
Java代码  收藏代码
  1. 怎么会没有效果?  
  2.   
  3. 简单点:以前就是姓和名都是分开的,现在的需求就是把姓名合在一起。  
  4.   
  5.   
  6. update 表名 set name = surname || name ;   
  7. 或者   
  8. update 表名 set name = to_char(surname) || to_char(name)   
  9.   
  10. 你说的两种都不行。(surname 与 name 都是varchar类型 合成varchar类型)  

问题补充:
Java代码  收藏代码
  1. 应该是这样的:  
  2.   
  3. update crm_salesLead  set name = concat(ifnull(surname,''),ifnull(name,''))  
  4.   
  5. 1 楼正解  
2012年1月04日 11:51
gc715409742 gc715409742
2
0 0 5

3个答案 按时间排序 按投票排序

0 0

采纳的答案

可以使用CONCAT函数,还要使用ifnull判断是否空
update xxx set a=CONCAT(ifnull(b,''),ifnull(c,''),ifnull(ADDRESS_TOWN,'')) ;

2012年1月04日 17:34
iblike iblike
131
0 0 0
0 0
引用
如果两个字段的值组合到一个字段中去

update crm_activity set entityType = entityID + entityName; 这样是不行的。


如果你的需求是合并字段,那么要使用连接符号

Sql代码  收藏代码
  1. update crm_activity set entityType = entityID||entityName;   
  2. 如果是类型问题,那么你需要转换下类型  
  3. update crm_activity set entityType = to_char(entityID)||to_char(entityName);  


SQL中的字符连接不是java语法中的+,也不是php语法中的点号,而是 双竖线||
2012年1月10日 22:22
LeeYee LeeYee
364
0 0 4
0 0
Sql代码  收藏代码
  1. update crm_activity  set entityType = 1, entityID = linkID ,entityName = linkName   


这个应该是你要的吧!
2012年1月04日 13:39

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多