gpt4 book ai didi

mysql - 使用 phpMyAdmin 将带有部分数据的制表符分隔的 csv 文件导入到 mysql 表中

转载 作者:行者123 更新时间:2023-11-29 00:08:21 25 4
gpt4 key购买 nike

我有一个大约有 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 在末尾有一个列规范。 see here

LOAD DATA INFILE ... 
INTO TABLE ...
FIELDS TERMINATED BY '\t'
IGNORE 1 LINES
(id, code, a, b, c)

来自 MySQL 文档:

By default, when no column list is provided at the end of the LOAD DATA INFILE statement, input lines are expected to contain a field for each table column. If you want to load only some of a table's columns, specify a column list: 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);

参见 here

关于mysql - 使用 phpMyAdmin 将带有部分数据的制表符分隔的 csv 文件导入到 mysql 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26439739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com