我正在使用opencart的網站上工作,並設置爲從兩個不同的批發商自動導入產品。該數據庫中包含大約40,000種不同的產品,其中約10,000種是重複的(均帶有該產品)。MySQL查找重複的產品和更新列
我需要查找所有重複產品(由UPC),並以較低的價格啓用產品。
該表稱爲「產品」,並具有product_id,upc,price,status和其他不相關的列。
我第一次嘗試是運行下面的查詢
SELECT DISTINCT (
upc
) AS upcDuplicate, COUNT(upc) AS upcCount
FROM product
GROUP BY upc
HAVING upcCount >1
這給了我的所有重複的產品列表,然後我是通過在PHP中那些的UPC將循環和運行
UPDATE product SET status=1 WHERE upc='CURRENTUPC' ORDER BY price ASC LIMIT 1
這將使價格最低的那個。
這工作,但似乎非常有效似乎它是如何依靠PHP來運行10,000個不同的MySQL查詢。有沒有什麼辦法可以把它放到單個查詢中,或者至少是更有效的方法。
看起來效果很好。我會通過檢查一些數據,但是你寫的是非常有意義的。我甚至沒有考慮在查詢中使用MIN()。 這也使我可以激活所有在同一鏡頭中沒有重複的產品。 –