【问题标题】:How to delete duplicate records in a mysql table? [duplicate]如何删除mysql表中的重复记录? [复制]
【发布时间】:2012-09-03 00:11:05
【问题描述】:

可能重复:
How to delete duplicate rows from a MySQL table

我有一个包含重复记录的 mysql 表,我想删除所有重复记录。我怎样才能做到这一点?我的表只有几列,1 列可以有重复的记录。这是关于用户注册的,我不希望电子邮件被注册两次。我无法在输入之前检查电子邮件,因为这会使注册过程复杂化,并且必须尽可能简单。

【问题讨论】:

  • 标题说“重复记录”,但问题有“重复列”。你能举个清楚的例子吗?
  • 不能有两列同名;那么你有重复的行吗?
  • 对不起。我的意思是 1 列上的重复记录。
  • 记录可能在 1 列中重复,但在其他列中具有不同的值。您需要一些标准来确定要删除哪些记录。
  • 如果你有两条记录在同一个邮箱里,你怎么知道要删除哪一条?

标签: mysql


【解决方案1】:

可以DELETE的多表形式进行自联接:

DELETE u1
FROM   users u1 JOIN users u2 USING (email)
WHERE  u1.timestamp < u2.timestamp

【讨论】:

  • 谢谢。什么是使用手段?这仅适用于 2 条重复记录还是适用于许多重复记录?
  • @Chiyou:对于每个email,它将删除除最近的记录之外的所有匹配记录。
  • 就是这样。非常感谢!
猜你喜欢
  • 2013-02-07
  • 2017-02-02
  • 1970-01-01
  • 2019-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
相关资源
最近更新 更多