最初我上传了使用加载数据Infile行有100000 Im使用Ubuntu
实施例:数据
ToneCode ....艺术家...的movieName ...语言
1 .................... Mj .......... Null ............ English
3 .................... AB .......... Null ............ English
4 .................... CD ......... Null ............ English
5 .................... EF .......... Null ............ English
但是现在我必须更新列MovieName从ToneCode 1开始直到100000行我在.csv文件中有数据要更新。 请建议如何上传包含数据的现有表格的.Csv文件
答案 0 :(得分:2)
我认为使用纯MySQL而不使用额外脚本的最快方法是:
使用http://dev.mysql.com/doc/refman/5.1/en/update.html描述的类似INNER JOIN的语法更新目标表:
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
这将使用items
列作为连接标准“加入”两个表month
和id
(仅使用INNER JOIN的“逗号语法”),并使用items.price
列的值更新month.price
列。
答案 1 :(得分:0)
我找到了一个解决方案,如上面提到的那些人
Soln:example
创建表A(Id int主键,名称Varchar(20),Artist Varchar(20),MovieName Varchar(20));
使用
添加我的所有100000行将数据infile'/Path/file.csv'加载到由'''括起来的','括起的表tablename(A)字段中 以'\ n'结尾的行 (Id,Name,Artist)这里的电影值为空
创建临时表TA(Id int primary Key,MovieName Varchar(20));
将数据上传到临时表TA 将数据infile'/Path/file.csv'加载到由'''括起来的','括起的表tablename(A)字段中 以'\ n'结尾的行(IDx,MovieName)
现在使用join表示
更新表名(TA),表名(A)设置A.MovieName = TA.MovieName其中A.Id = TA.Id