Mysql 组合插入和选择变量
我有两个表Mysql 组合插入和选择变量,mysql,variables,select,insert,Mysql,Variables,Select,Insert,我有两个表users\u new和users\u old,其中包含一些行数。 我想使用insert select将数据从users\u old插入到users\u new 表users\u old有一个字段name,其中包含名字和姓氏。 表users\u new必须有两个字段,名字(name)和姓氏(姓氏) 我不知道如何把它们结合起来。有什么建议吗 SET @str=""; SET @firstName=""; SET @lastName=""; INSERT INTO users_new
users\u new
和users\u old
,其中包含一些行数。
我想使用insert select
将数据从users\u old
插入到users\u new
表users\u old
有一个字段name
,其中包含名字和姓氏。表
users\u new
必须有两个字段,名字(name
)和姓氏(姓氏
)
我不知道如何把它们结合起来。有什么建议吗
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
姓氏是通过第二次调用选择的:由于
-1
参数,此函数将获取名称
字段的第二部分。如果所有名称都由姓氏和名组成,则此函数只起作用。如果一个名字只有一个单词,那么它将在两个col中重复,如果在混合中有一个中间名,那么姓氏将丢失。