【问题标题】:Mysql Load Data for existing column of a tableMysql为表的现有列加载数据
【发布时间】:2013-03-21 10:48:38
【问题描述】:

最初我上传的 Using load Data Infile 行有 100000 Im Using Ubuntu

示例:数据

ToneCode....艺术家...电影名...语言

1........Mj.............空............英语

3........AB.............空............英语

4........CD............空............英语

5........EF.............空............英语

但现在我必须更新从 ToneCode 1 到 100000 行的列 MovieName 我在 .csv 文件中有数据要更新。 请建议如何使用数据上传现有表的 .Csv 文件

【问题讨论】:

  • 您使用哪种语言,如 php、java、C# 等。
  • 我正在使用 Mysql 服务器。前端 android im using.To Upload Im Using WorkBench To Upload data

标签: mysql ubuntu load-data-infile


【解决方案1】:

我认为使用纯 MySQL 且无需额外脚本的最快方法如下:

  • 创建一个临时表,两列 ToneCode 和 MovieName 与目标表中的相同
  • 使用 LOAD DATA INFILE 将新 CSV 文件中的数据加载到该文件中
  • 使用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;

    这将使用id 列作为连接条件“连接”两个表itemsmonth(仅使用“逗号语法”进行INNER JOIN),并更新items.price具有month.price 列的值的列。

【讨论】:

    【解决方案2】:

    我已经找到了上面提到的解决方案

    解决方案:示例

    创建表A(Id int primary Key, Name Varchar(20),Artist Varchar(20),MovieName Varchar(20));

    使用

    添加我所有的 100000 行

    将文件 '/Path/file.csv' 中的数据加载到表 tablename(A) 字段中,以 ',' 结尾,并由 '"' 括起来 以 '\n' 结尾的行 (Id,Name,Artist) 这里的movie值为null

    创建临时表TA(Id int primary Key,MovieName Varchar(20));

    上传数据到临时表TA 将文件 '/Path/file.csv' 中的数据加载到表 tablename(A) 字段中,以 ',' 结尾,并由 '"' 括起来 以 '\n'(IDx,MovieName)

    结尾的行

    现在像你说的那样使用 join

    Update Tablename(TA),TableName(A) set A.MovieName=TA.MovieName Where A.Id=TA.Id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-22
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      相关资源
      最近更新 更多