Mysql phpmyadmin导出/导入列

时间:2014-01-21 20:37:58

标签: mysql phpmyadmin mysqldump

我按照本指南导出列

http://stackoverflow.com/questions/4486743/how-do-i-export-particular-column-in-mysql-using-phpmyadmin

我的Sql表是: ID,名称,描述,网址,标签,category_id .......................

所以我想导出列name并将所有名称翻译成不同的语言 问题是如何将列name导回到同一个表但是有更改? 例如:

Id =1 name = hello    after import -> Id =1 name = Здравей
Id =2 name = Bye      after import -> Id =2 name = чао

我希望在导入后发生。

2 个答案:

答案 0 :(得分:2)

一种方法是创建临时表,将修改后的信息导入其中,并更新连接两者的第一个表。稍后,删除临时表。

做这样的事情:

  • 创建一个查询,仅显示table1中的id和name字段。
  • 将结果导出到sql文件。
  • 将名称翻译成俄语并保存文件。
  • 创建一个新表(如tmpTable),其中两个字段的名称与您导出的字段相同。
  • 将sql文件导入新创建的tmpTable。
  • 构建连接两个表的INSERT查询,例如:

UPDATE table1 JOIN tempTable ON table1.id = tempTable.id SET table1.name = tempTable.name

答案 1 :(得分:0)

您可以使用LOAD DATA INFILE将800,000行数据批量加载到临时表中,然后使用多表UPDATE语法将现有表连接到临时表并更新数量值。

例如:

CREATE TEMPORARY TABLE your_temp_table LIKE your_table;

LOAD DATA INFILE '/tmp/your_file.csv'
INTO TABLE your_temp_table
FIELDS TERMINATED BY ','
(id, product, sku, department, quantity); 

UPDATE your_table
INNER JOIN your_temp_table on your_temp_table.id = your_table.id
SET your_table.quantity = your_temp_table.quantity;

DROP TEMPORARY TABLE your_temp_table;

https://stackoverflow.com/a/10253773/4238757