gpt4 book ai didi

mysql - 从 Excel 文件更新数据库表

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

我有一个包含许多列的 Excel 文件。我有两个数据库表 - job_newjob_dockets。我正在尝试创建一个 sql 查询,从 excel 文件中提取两列(JobNo 和 CustManRef),并从 job_new 表中更新字段 3rdPartyRef,但仅限于job_dockets 中的字段 DocketNo 等于 excel 文件中的 JobNo 列。

CREATE TEMPORARY TABLE your_temp_table LIKE job_new;

LOAD DATA INFILE 'C:/Users/cdaly/Desktop/test.csv'
INTO TABLE your_temp_table
FIELDS TERMINATED BY ','
(JobNo,CustManRef);

UPDATE job_new j
LEFT JOIN job_dockets d on d.JobID = j.ID AND j.CompanyID = 195
INNER JOIN your_temp_table on your_temp_table.JobNo = d.DocketNo
SET j.3rdPartRef = your_temp_table.CustManRef;

DROP TEMPORARY TABLE your_temp_table;

查询只是一直说 0 行受影响,因此它不会更新 job_new 表。

所以我想做的是将 job_new 中的 3rdPartyRef 设置为 Excel 中的 CustManRef,其中 docketno job_dockets 中的 code> 等于 Excel 文件中的 JobNo

job_docket 示例:

enter image description here

job_new 示例:

enter image description here

Excel 文件:

enter image description here

好的,我希望这些例子能让你更清楚。因此,Excel 文件中的 JobNo 等于 job_dockets 中的 DocketNo。因此,当 JobNo 等于 DocketNo 时,我需要将 3rdPartyRefjob_new 更新为 来自 Excel 的 >CustManRef

最佳答案

根据评论中的讨论,问题的根本原因是:

@Shadow yes you are right. The data isn't importing from the excel into the correct fields in the temporary table. But the excel columns are an exact match to the columns in the job_new table. – user123456789

未正确导入列的原因在于加载数据命令,具体来说,在命令末尾提供的列列表中:

...
FIELDS TERMINATED BY ','
(JobNo,CustManRef);

JobNo,CustManRef 指示 MySQL 将文本文件中的第一列和第二列导入到目标表的 JobNo,CustManRef 列中。根据 Excel 文件的屏幕截图,第一列和第二列是 id 和 jobno 列。

您应该从加载数据语句中删除此cluse,MySQL 将能够将数据导入到正确的字段中。

关于mysql - 从 Excel 文件更新数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37588842/

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