我无法弄清楚执行以下操作的正确方法:
1。)我有一个全名列 2.)我需要将fullname列拆分为first&姓氏块 3.)我需要插入'分裂'数据到各自的列(当前为空且在同一个表中)
我无法弄清楚如何在一个查询中执行此操作,因此我将其分解为步骤:
1。)获得了我的分割数据(第一个/最后一个字符串)
SELECT fullname, SUBSTRING_INDEX(fullname,' ',1) AS fname, SUBSTRING_INDEX(SUBSTRING_INDEX(fullname,'.',2),' ',-1) AS lname FROM tablename;
给了我的fname& lname子字符串..
我错误地尝试了这个:
INSERT INTO paypalRegistration (firstname, lastname) VALUES
("xxxx", "xxx"),
("yyy", "yyy"),
("zzz", "zzz"),...etc..
只是将内容插入NEW行..(并且没有更新当前行[带有空白列]已经在表中)
所以我接着尝试了这个:
UPDATE paypalRegistration SET(firstname, lastname) VALUES ("xxxx", "xxx"),
("yyy", "yyy"), ("zzz", "zzz"),...etc..
但收到了错误..
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便使用接近'(名字,姓氏)值的正确语法(" xxxx"," xxx")....
所以在这一点上,我的问题是双重的。
1。)如何在1个查询中执行此操作?
2。)在我所处的位置,用上面的唯一值更新2+列的正确方法是什么?
更新
这最终对我有用:
UPDATE myTable SET firstname=SUBSTRING_INDEX(fullname,' ',1), lastname=SUBSTRING_INDEX(SUBSTRING_INDEX(fullname,'.',2),' ',-1);
答案 0 :(得分:1)
假设您的表名是 paypalRegistration 此表 paypalRegistration 包含以下列:
我希望您的表 paypalRegistration 中已有id列,如上所述。 现在,您可以执行此SQL:
UPDATE paypalRegistration x
INNER JOIN (
SELECT
id,
SUBSTRING_INDEX(fullName,' ',1) AS fname,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullName,'.',2),' ',-1) AS lname
FROM paypalRegistration
) y ON y.id=x.id
SET x.firstName = y.fname, x.lastName = y.lname;