在MySQL中将多个文本字段合并为一个

MrG*_*ass 3 mysql sql

我在一个表中有一个用户列表,分别有名字,中间名和姓氏的字段。由于各种原因,我需要更改数据库结构,以使只有一个“名称”字段。将数据从3个旧字段迁移到一个新字段中的最佳/最简便方法是什么?

Ric*_*iwi 5

首先添加一个列,该列长于所有3个列的总和。

alter table tbl add fullname varchar(100);
Run Code Online (Sandbox Code Playgroud)

接下来,用更新CONCAT老列的耳突。

update tbl set fullname = concat(lastname, ', ', firstname, ' ', middlename)
Run Code Online (Sandbox Code Playgroud)

(最终以“柯克,约翰·M”的形式出现)

然后,删除旧列

alter table tbl drop column firstname;
alter table tbl drop column middlename;
alter table tbl drop column lastname;
Run Code Online (Sandbox Code Playgroud)