1

我有一个包含“名称”字段的大型(100 万+行)数据库/表。但是,我需要一个名字和姓氏字段。

我能够运行查询以在新字段(解析)中以我需要的方式显示拳头和姓氏,但我似乎无法将这些查询结果插入到表中。

我能够在表中创建字段,但不能填充它们。

我在 phpMyAdmin 中工作,并且该表是通过 ODBC 从 Access 导出的。

下面是几个不起作用的代码示例。自从我不得不使用 SQL 以来已经有几年了,我认为这种方法的逻辑可能是错误的。我当然感谢任何帮助。

不起作用的示例:

INSERT INTO fed2012_aquabarndesign_com (lastname)
select left(Name,InStr(Name,',')) AS lastname
from fed2012_aquabarndesign_com

或者

INSERT INTO fed2012_aquabarndesign_com (lastname)
Values (select left(Name,InStr(Name,',')) from fed2012_aquabarndesign_com);
4

1 回答 1

2

以下是您如何使用UPDATE-- 不确定是否要将INSERT这些记录返回到同一个表中的方法:

update fed2012_aquabarndesign_com
set firstname = trim(left(name, instr(name, ' ' ))),
  lastname = trim(right(name, length(name) - instr(name, ' ' )))

SQL 小提琴演示

这确实假设每个全名在名字和姓氏字段之间都有一个空格。

如果您真的想重新插入这些行,那么这应该可以:

insert into fed2012_aquabarndesign_com (firstname, lastname)
select trim(left(name, instr(name, ' ' ))),
   trim(right(name, length(name) - instr(name, ' ' )))
from fed2012_aquabarndesign_com;

SQL 小提琴演示

于 2013-04-03T22:55:00.843 回答