【发布时间】:2015-02-01 18:45:23
【问题描述】:
我想清理用户已发布两次(或更多)相同 cmets 的 cmets 表(1M 行)上的重复内容。但是,我想保留任何重复评论的一个实例。
这是我提出的用于查找和分组这些 cmets 的查询:
SELECT author, body, COUNT(*) as count
FROM db.comment
GROUP BY body
HAVING COUNT(*) > 1;
但不知道如何删除重复的行而只保留一个不变。 我见过类似的问题,但没有一个对我有用。所以感谢你的提示。
更新:
mysql> describe comment;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| created | datetime | NO | | NULL | |
| author | varchar(60) | NO | | NULL | |
| body | longtext | NO | | NULL | |
| post_id | int(11) | NO | MUL | NULL | |
+---------+-------------+------+-----+---------+----------------+
【问题讨论】:
-
您的
comment表是否有任何唯一ID? -
@PeterM 不,它没有。
-
@helpYou 这个问题是 php 特有的。我的网站不在 php 中,这里的问题是纯 sql 的。