我有两个表users_new
和users_old
,有一些行数。我想使用 insert select
将数据从users_old
插入到users_new
。
表 users_old
有一个字段 name
,其中包含名字和姓氏。
表 users_new
必须有两个字段:名字 ( name
) 和姓氏 ( surname
)。
我不知道如何将它们结合起来。有什么建议吗?
SET @str="";
SET @firstName="";
SET @lastName="";
INSERT INTO users_new (name, surname)
VALUES(
SELECT @firstName,@lastName;
@str=select name
FROM users_old
SET @firstName = SUBSTRING_INDEX(@str, ' ', 1);
SET @lastName=LTRIM(REPLACE(@str, @firstName, ''))
);
如果拆分标准是空格,正如发布的 sql 代码所暗示的那样,那么您可以使用一个简单的 INSERT INTO SELECT
语句:
INSERT INTO users_new (name, surname)
SELECT SUBSTRING_INDEX(name, ' ', 1), SUBSTRING_INDEX(name, ' ', -1)
FROM users_old
姓氏是通过第二次调用SUBSTRING_INDEX
来选择的:由于-1
参数,这个调用获得name
字段的第二部分。