以特定方式删除mysqldb中的重复行

时间:2017-11-16 12:44:30

标签: python mysql duplicates mysql-python

我想删除mysqldb表中的重复行,其中4列的值相同。如果我还有auto_increment列,我怎么能这样做呢?

ALTER IGNORE TABLE test
ADD UNIQUE INDEX idx_name (col1, col2, col3, col4);

如何在Python中实现这部分代码?

connection = MySQLdb.connect(host='localhost',
            user='admin',
            passwd='',
            db='database1',
            use_unicode=True,
            charset="utf8")
 cursor = connection.cursor()

1 个答案:

答案 0 :(得分:0)

假设您的自动增量列名为id 您可以使用not in子句

  delete from  my_table 
  where id not IN (
   select max(id)
   from  my_table 
   group by col1, col2, col3, col4
   ) 

id以这种方式删除所有对于相同的col1,col2,col3,col4具有多个istance的行,并且在db中为每个行放入具有max(id)的行