2011-03-17 87 views
3

我有一个表中的用户列表,其中包含第一个,中间和最后一个名称的单独字段。由于各种原因,我需要更改数据库结构,使得只有一个“名称”字段。将我的数据从3个旧字段迁移到我的一个新字段中的最佳/最简单的方法是什么?在MySQL中将多个文本字段合并为一个

+0

??? MySQL接受的答案在MySQL中不起作用 - MySQL使用'CONCAT()',而不是'+',MySQL使用'IFNULL'而不是'ISNULL' – RichardTheKiwi 2011-03-17 02:38:55

回答

4

首先添加比所有3个组合更长的列。

alter table tbl add fullname varchar(100); 

接下来,与concat耳突旧列的更新。

update tbl set fullname = concat(lastname, ', ', firstname, ' ', middlename) 

(这个形式 '柯克,约翰·M' 结束)

然后,删除您没有使用MYSQL旧列

alter table tbl drop column firstname; 
alter table tbl drop column middlename; 
alter table tbl drop column lastname; 
1
UPDATE Users SET FullName = FirstName + ' ' + MiddleName + ' ' + LastName 
0
UPDATE Users SET Fullname = CONCAT(Firstname, " ", MiddleName, " ", LastName); 
0

使用 '表达+表达式' 表达应该是非NULL串联。