2013-10-06 75 views
0

在我的表中有很多重複的行。我有一個SELECT提供了我想要刪除的數據,但我該怎麼做?無論我嘗試什麼,我都會遇到錯誤。將SELECT語句更改爲DELETE

SELECT * 
    FROM tablename t 
WHERE NOT EXISTS (   
       SELECT 1 
       FROM tablename t2 
       WHERE t2.column = t.column 
       HAVING COUNT(*) = 1 
        ) 
+1

變化'選擇*''來... delete' PS – Ben

+0

,如果有重複的,那麼你需要開始學習關於[唯一和主鍵](http://en.wikipedia.org/wiki/Unique_key)。 – Ben

+0

是的,我嘗試了這個,但它顯示錯誤:#1064 - 你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在't WHERE NOT EXISTS'附近使用正確的語法(SELECT 1 FROM norma'at 2 btw。kollat​​ion is utf8mb4_bin – user2826395

回答

0

只需要改變 'SELECT *' 到 '刪除'

DELETE 
FROM tablename t 
WHERE NOT EXISTS (   
       SELECT 1 
       FROM tablename t2 
       WHERE t2.column = t.column 
       HAVING COUNT(*) = 1 
      ) 
+0

是的,我試過了,但它顯示錯誤:#1064 - 你的SQL語法錯誤;檢查與你的MySQL服務器版本相對應的手冊,以找到正確的語法,以便在't WHERE NOT EXISTS'附近使用(SELECT 1 FROM norma'在2行btw。kollat​​ion是utf8mb4_bin – user2826395