2010-09-22 73 views
1

我有一个表名为tblm_customer删除mysql中同一表的重复记录

它包含字段名为firstnamelastname。现在我想删除表中包含相同名字和姓氏的所有记录。

我用mysql数据库,customerid是表中的主键。

+0

做两个记录具有相同的名字/姓氏也有相同的customerid? – eumiro 2010-09-22 09:19:03

+0

没有customerid是唯一的,因为它是主键 – chetan 2010-09-22 09:20:07

+0

可能的重复[如何从MySQL表中删除重复的行](http://stackoverflow.com/questions/5770228/how-to-delete-duplicate-rows-from- a-mysql-table) – Basilevs 2014-09-16 15:48:52

回答

4

以下删除删除所有重复,让你有最新的客户ID

一记警告,虽然。我不知道你的使用案例,但完全有可能让两个名字完全相同的人(我们甚至有一次地址相同)。

DELETE c1 
FROM tblm_customer c1 
     , tblm_customer c2 
WHERE c1.FirstName = c2.FirstName 
     AND c1.LastName = c2.LastName 
     AND c1.CustomerID < c2.CustomerID 
+0

它将发生错误1093(HY000):你不能指定目标表'TBLM_CUSTOMER'在FROM子句错误中更新,如 – chetan 2010-09-22 12:54:30

+0

@chetan,我已经改变了语句。前面的语句与SQL Server一起工作。这应该使用MySQL。 – 2010-09-22 13:05:02