mysql - 删除MySQL表中的所有重复行(除了1,所有重复行)

标签 mysql sql

Possible Duplicate:
Remove duplicate rows in MySQL

我有一个表“recipientscore”,如下所示:

  • 收件人 ID/消息 ID
  • 1/1
  • 2/2
  • 3/2
  • 4/2
  • 5/3
  • 6/4

我想要做的是删除所有出现两次或多次的记录。我不想保留每条重复记录的一个版本。清理后看起来像这样:

  • 收件人 ID/消息 ID
  • 1/1
  • 5/3
  • 6/4

您知道如何做到这一点吗?

谢谢!

最佳答案

delete from recipientscore
where messageid in
(
   select * from
   (
      select messageid from recipientscore
      group by messageid
      having count(*) > 1
   ) x
)

SQLFiddle demo

关于mysql - 删除MySQL表中的所有重复行(除了1,所有重复行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662026/

相关文章:

php - 在 mysql 字段中分隔的外部 ID

sql - 为什么不总是使用 GUID 而不是整数 ID?

sql - 两个不同的表还是只有一个带有 bool 列的表?

mysql - phpmyadmin 打开 MySQL 表列表很慢

mysql - 如何使用exec.Command登录mysql

MySQL删除每个人的最后20条以外的所有条目

sql - 如何查看 Oracle DB 中的 View 何时被修改

java - 使用 C3P0 和 Hibernate/Spring 创建的许多线程

sql - 遍历一个嵌套的json对象,将key和value插入到两个相关的表中

sql - 使用正则表达式 Oracle