Mysql从excel中导入新的代码
我有一个从项目ID到一些新的类别代码映射的CSV文件。
例如
Project Id, New Code 1, 035 2, 029 3, 023 4, 035 5, 029 ....
以上是在CSV文件/ Excel文件
我有一个与这些项目ID的项目表,我想添加一个新的列与RELavan新的代码。
有什么办法,我可以用MySQL做到这一点?
这是一个快速和肮脏的解决scheme,使用Excel的CONCATENATEfunction:
假设您在列A中有项目ID,在列B中有新代码,请为列Cinput以下内容:
=CONCATENATE("update projects set new_code = ",B1, " where project_id = ", A1, ";")
然后复制并粘贴您的Excel电子表格中的所有行。 这将生成SQL语句,然后您可以使用批量更新您的表。 将文本复制到一个脚本,然后让MySQL执行它。
你会得到一个如下所示的脚本:
update projects set new_code = 35 where project_id = 1; update projects set new_code = 39 where project_id = 2; update projects set new_code = 23 where project_id = 3;
这当然假设你已经有了你的表中的新列。 如果不是,请使用alter table语句添加它:
alter table projects add column new_code int;
注意:如果你想重复这个方法,我不推荐这个方法 – 但是如果它只是一次性的,那么像这样的快速解决scheme就行得通。
首先问题是把你的CSV文件放到数据库中。 有一些mysql的解决scheme,例如http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html
也有第三方工具这样做。
当你在你的数据库的新表中有CSV-Data,并且在你的项目表中创build了一个新的列时,只要执行下面的语句:
UPDATE projects p SET new_code = (select distinct new_code from temp_table where project_id = p.project_id)