我有点紧张。我有一个2列的表。 firstName和lastName。
导入SQL的数据在firstName列中包含名字和姓氏。
有没有一种快速方法来更新表,将第一个空格之前的所有内容放入lastName,并将空格后的所有内容放入firstName列?我知道我可以导出,并通过excel执行此操作,但它接近生产时间,所以我宁愿不冒险。
我在这里查看了几个不同的拆分帖子,但那些不涉及同时更新。
答案 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);
注意:它适用于全名中的任何数字空格。它只考虑最后一个空格后面的字符串作为名字。