2011-10-24 52 views
0

我有一組數據,它基本上,我需要「乾淨」如何把這個SELECT INTO DELETE

用戶輸入自己喜愛的香水到表單,並在表單上我有自動完成的選擇,以幫助和希望能夠減少對手頭任務非常重要的拼寫錯誤。

例如,以下是我對Paco Rabanne 100萬種產品的數據 - 但是,我希望他們選擇Paco Rabanne 1百萬但我不希望他們有各種乳液,肥皂,除臭劑等等等等這是我感興趣的品牌和香水的選擇。

我有的數據的一個例子如下所示。

Paco Rabanne 1 Million Gift Set 
Paco Rabanne 1 Million Deodorant Stick 75ml 
Paco Rabanne 1 Million Deodorant 
Paco Rabanne 1 Million Eau de Toilette 
Paco Rabanne 1 Million Gift Set 50ml 
Paco Rabanne 1 Million Shower Gel 150ml 
Paco Rabanne 1 Million Eau De Toilette Spray 100ml 
Paco Rabanne 1 Million After Shave Lotion 100ml 

我有一個查詢其取出某些詞項標題內,並顯示還剩下些什麼

查詢:

select DISTINCT(TRIM(LEFT(title, 
     IF(LOCATE('Deodorant', title), LOCATE('Deodorant', title) - 1, 
      IF(LOCATE('Shower', title), LOCATE('Shower', title) - 1, 
       IF(LOCATE('Refillable', title), LOCATE('Refillable', title) - 1, 
        IF(LOCATE('Spray', title), LOCATE('Spray', title) - 1, 
         IF(LOCATE('ml', title), LOCATE('ml', title) - 1, 
      999 
     ) 
    ) 
) 
))))) FROM `PRprod_FRAGRANCES` 

這基本上從表中選擇,而省略任何重複的符合在標題或淋浴等除臭劑,但我想永久刪除記錄,而不是每次運行此查詢,這是昂貴的,因爲表有超過200,000行

本質上,我想打開查詢,所以它不會顯示我不想要的行,但實際上刪除它們。

除非有另一種方法來解決這個問題嗎?

這是表的定義:

field, type, NULL, Key, Default, Extra 

autoc_id, int(11), NO, PRI, , auto_increment 
title, varchar(128), YES, , , 
genre, varchar(128), YES, , , 
author, varchar(128), YES, , , 
actors, varchar(256), YES, , , 
artist, varchar(128), YES, , , 
main_category, varchar(128), NO, , , 
dateadded, timestamp, NO, , CURRENT_TIMESTAMP, 
+0

最簡單的解決方案是使用'WITH'。例如'有結果(