2013-03-14 29 views
0

我的magento數據庫中有大約800,000種產品,我需要刪除大約一半的產品(大約400,000)。Magento - 使用SQL查詢刪除所選產品

運行在Magento的1.7.0.2

這只是帶我永遠從「管理產品」頁面做到這一點。該過程需要很長時間,並且服務器保持超時。

是否有一條SQL語句可以從數據庫中刪除選定的產品? 所有需要刪除的產品,冠軍* NLA

開始我知道磁存儲在幾個不同的表產品數據,所以我試圖找出如何刪除與選擇相關聯的所有數據來自所有表格的產品。

我知道MySQL的語句,但我不是專家,不知道這一個了。 例如,如果是隻有一個表,我會做這樣的事情: DELETE FROM product_table WHERE title_value LIKE「* NLA%」

我將不勝感激,如果有人能在正確的方向指向我。如果你從一個表中刪除

回答

0

SQL聲明應該做的工作。

如果存儲在不同的表,這取決於它們的存儲方式。如果,例如,產品根據其關鍵是在不同的表一個foreign key存儲,然後所有相關表將更新,當產品從主表(取決於外鍵是否被設置爲CASCADE ON DELETE與否)刪除。

但要小心LIKE條件中給出的正則表達式,確保沒有其他產品在其標題中包含'NLA'。

編輯:你說'NAL'開頭?在這種情況下,你的正則表達式應該是這樣'NAL*%'

DELETE FROM product_table WHERE title LIKE 'NAL*%' 
1

您可以使用此查詢

DELETE FROM product_table WHERE title_value LIKE '*NLA% 

Magento的使用InnoDB引擎存儲的MySQL與外鍵。所有具有FK密鑰的數據也將被刪除。