2012-10-03 54 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

相關問題