![](/img/trans.png)
[英]How i can import a file(csv/excel) with partial data to table in database through phpmyadmin?
[英]import tab separated csv file with partial data into mysql table with phpMyAdmin
我有一个约有30列的MySQL表。 我有一个约有10列的CSV文件。
我想使用phpMyAdmin从数据库中的CSV文件更新数据,而不更改其余数据。
例如,MySQL将是:
id, code, name, description, a, b, c, x, y, z
10, rbmls, Joe Blow, Neighbor, 100, 200, 500, 80, 800, 10
CSV可能包含:
id[TAB]code [TAB]a [TAB]b [TAB]c
10[TAB]rbmls[TAB]10[TAB]300[TAB]0
我想按ID匹配CSV和MySQL表中的数据,然后覆盖MySQL表中CSV中的数据,而不删除其他任何内容。
上述示例的预期结果将是:
id, code, name, description, a, b, c, x, y, z
10, rbmls, Joe Blow, Neighbor, 10, 300, 0, 80, 800, 10
如何在phpMyAdmin中做到这一点?
LOAD DATA INFILE
在末尾具有列规范。 看这里
LOAD DATA INFILE ...
INTO TABLE ...
FIELDS TERMINATED BY '\t'
IGNORE 1 LINES
(id, code, a, b, c)
从MySQL-Doc:
默认情况下,当在LOAD DATA INFILE语句的末尾未提供任何列列表时,输入行应包含每个表列的字段。 如果只想加载表的某些列,请指定一个列列表:LOAD DATA INFILE'persondata.txt'INTO TABLE persondata(col1,col2,...);
替代
将数据加载到临时表中,然后从那里对主表执行INSERT ... UPDATE
。 像这样:
LOAD DATA INFILE ... INTO TABLE `temp` ...
INSERT INTO mainTable (id, code, a, b, c)
SELECT * FROM `temp`
ON DUPLICATE KEY UPDATE code=VALUES(code), a=VALUES(a), b=VALUES(b), c=VALUES(c);
看这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.