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)