我有一个包含“名称”字段的大型(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);
答案 0 :(得分:2)
以下是使用UPDATE
执行此操作的方法 - 不确定您是否希望INSERT
这些记录返回同一个表:
update fed2012_aquabarndesign_com
set firstname = trim(left(name, instr(name, ' ' ))),
lastname = trim(right(name, length(name) - instr(name, ' ' )))
这假设每个全名在名字和姓氏字段之间都有一个空格。
如果确实想要重新插入这些行,那么这应该可行:
insert into fed2012_aquabarndesign_com (firstname, lastname)
select trim(left(name, instr(name, ' ' ))),
trim(right(name, length(name) - instr(name, ' ' )))
from fed2012_aquabarndesign_com;