mysql - 使用 CSV 文件中的数据更新 SQL 数据库中的字段

标签 mysql sql csv cart zen

<分区>

首先,如果有人回答了这个问题,我深表歉意。我见过很多类似的问题,但没有一个能完整回答我的问题。

首先,我充其量只是一个 SQL 新手。自从开设我的在线商店以来,我学到了很多东西,但我对其中的大部分内容仍然知之甚少。

好的,我的网络服务器上有一个用于我的在线商店的数据库。我卖的东西也可以代发货。我可以每隔几分钟从我的经销商处下载一个 CSV 格式的更新库存文件。此文件包含两列,第一行中没有字段名称。我要更新的表是 zen_products。 CSV 文件中的第一列对应于列 products_model 并且是唯一的。 CSV 文件中的第二列对应于列 products_quantity。 CSV 文件中会有 SQL 表中不存在的记录。我不想创造新记录;我只想使用 CSV 文件中的值更新 products_quantity 列。

好的,就目前而言,我可以通过我的购物车软件的管理部分使用附加组件来完成此操作,但我必须编辑 CSV 文件以输入特定的字段名称。这不是问题,因为它非常简单,但编辑文件、登录、上传和处理文件确实需要几分钟时间。其实很简单;但是我想找到一种方法来完全自动化这个过程,这样我就可以在可能的情况下每 15-30 分钟自己完成一次。正如您想象的那样,花费 5 分钟的时间是可以的,但是如果每 15 分钟花费 5 分钟,那么一整天的时间就会很长。即使在我忙碌或不在的时候也能让它发生,那就太好了。

如有必要,我也愿意为一个有效的、完全自动化的解决方案支付合理的费用。此外,CSV 文件只能通过 FTP 访问。仅供引用,我使用 Zen Cart 作为我的购物车。

如有任何帮助,我们将不胜感激。谢谢。

更新:基于 JKirchartz 的帮助(谢谢你,顺便说一下,你很摇滚),我有这个似乎每次运行它都有效:

DELETE FROM zen_temp;

load data local infile '/home/somedude/public_html/somefolder/somefile.csv' into table zen_temp
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(products_model, products_quantity);

UPDATE zen_products SET `products_quantity` = ( SELECT products_quantity FROM zen_temp WHERE zen_products.products_model = zen_temp.products_model )
WHERE EXISTS ( SELECT products_model FROM zen_temp WHERE zen_products.products_model = zen_temp.products_model );

现在我的问题是,我怎样才能把它变成我只需很少的输入就可以轻松完成的事情?有没有一种方法可以轻松地安排它或从任何地方运行它?再次感谢。

最佳答案

您可以直接导入 CSV:

load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments) 

要更新,您必须LOAD DATA LOCAL INFILE 到另一个表中,然后使用存储过程或查询来INSERTUPDATE (相对于 REPLACE)你想要的表

关于mysql - 使用 CSV 文件中的数据更新 SQL 数据库中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462966/

相关文章:

c# - 读取大型 CSV 文件并在 C# 中处理。有什么建议么?

php - 从表中检索所有数据,然后计算另一个表中有多少结果

jquery - dataTables排序顺序描述问题

当 where 子句使用另一个表中的项目时,Mysqli 选择查询

php - 在ajax post mysql上形成序列化非法字符串偏移量 ''

mysql - 从 SQL 中具有 SOME status=0 的表中选择所有信息

mysql - 查找重复行仅获取较旧的行

sql - SQL 中的 Unix 时间

python - 需要将数据从文本文件提取到电子表格中进行分析

PHP - 插入多个表,每个表具有相同的字段