更新将一列拆分为两列?

时间:2016-08-17 17:16:12

标签: mysql sql

我有点紧张。我有一个2列的表。 firstName和lastName。

导入SQL的数据在firstName列中包含名字和姓氏。

有没有一种快速方法来更新表,将第一个空格之前的所有内容放入lastName,并将空格后的所有内容放入firstName列?我知道我可以导出,并通过excel执行此操作,但它接近生产时间,所以我宁愿不冒险。

我在这里查看了几个不同的拆分帖子,但那些不涉及同时更新。

2 个答案:

答案 0 :(得分:2)

尝试使用:

UPDATE
   table
SET
   lastname = SUBSTRING(firstName, 1, CHARINDEX(' ', firstName) - 1),
   firstName= SUBSTRING(firstName, CHARINDEX(' ', firstName) + 1, LEN(firstName))

答案 1 :(得分:1)

的MySQL

<强>演示:

SET @str := 'Robert Optional Dickey';

SELECT 
SUBSTRING_INDEX(@str,SUBSTRING_INDEX(@str,' ',-1),1) AS lastName,
SUBSTRING_INDEX(@str,' ',-1) AS firstName;

<强>输出:

lastName            firstName
Robert Optional     Dickey

更新查询:

UPDATE your_table
SET lastName = SUBSTRING_INDEX(@str,SUBSTRING_INDEX(@str,' ',-1),1),
firstName = SUBSTRING_INDEX(@str,' ',-1);

注意:它适用于全名中的任何数字空格。它只考虑最后一个空格后面的字符串作为名字。