2013-10-06 37 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