结合INSERT SELECT和VARIABLES

时间:2016-03-16 14:33:34

标签: mysql variables select insert

我有两个表users_newusers_old,其中包含一些行数。 我想使用users_old将数据从users_new插入insert select

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, ''))
);

1 个答案:

答案 0 :(得分:1)

如果分割标准是空格,如发布的sql代码所暗示的那样,那么您可以使用简单的INSERT INTO SELECT语句:

INSERT INTO users_new (name, surname)
SELECT SUBSTRING_INDEX(name, ' ', 1), SUBSTRING_INDEX(name, ' ', -1)
FROM users_old

通过第二次调用SUBSTRING_INDEX来选择姓氏:由于name参数,此名称获取-1字段的第二部分