2012-10-03 56 views
0

我需要从两个csv文件导入数据。使用if语句执行DUPLICATE KEY UPDATE

如果第二个文件包含相同的sku,它应该只在价格低于价格时更新。

这里是我的代码:

$sql = mysql_query("INSERT INTO varer (sku,productname,price,mpn,stock,distributor) 

VALUES ('$sku','$productname','$price','$mpn','$stock','$distributor')"); 

上面的代码工作正常,只是插入数据,因此问题是,只有当同一SKU将在那里。

这是我想做的事:

如果存在于数据库$SKU$pric e是比价格更低存在于数据库应该更新$price$productname$stock$distributor

请让我知道如果你有任何建议。

+4

圣SQL注入漏洞,蝙蝠侠! – cdhowie

+0

请在对您的客户,您工作的公司或您的职业生涯造成严重损害之前,学习如何正确使用[SQL转义](http://bobby-tables.com/php)。这不是学术问题。正如您在此处所见,产品名称为Bob's Tools会导致应用程序崩溃。 – tadman

回答

1

docs

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) 
    ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 

好像原始式柱是其名称下可用的,并且要被插入的值需要在VALUES()函数。更新到最新的新旧价格应该很容易:How to get the max of two values in MySQL?

+0

然后更新两个价格的MIN。 – Sven

+0

我不清楚我认为我已经试过一切关于这个我只是不明白它:-) $ sql = mysql_query(“INSERT INTO varer(sku,productname,price,mpn,stock,distributor) VALUES(' $ SKU”, '$产品名称', '$价格', '$ MPN', '$股票', '$总代理')“); ***如果它在数据库中找到相同的$ sku,它应检查数据库中该sku的价格是否低于该csv文件的价格。如果价格较低,它应该从csv文件更新价格,产品名称,mpn等。 让我知道你会如何做这个例子 – Chris

相关问题