0

我在 MySQL 数据库中有一些行是重复的,除了它们的 ID 号。

例如,我可能将其分为两行:

ID   | wordlist | category
845  | abashed  | confused
1800 | abashed  | confused

我想把它们都找出来,只留下一个。

我可以使用 SQL 来执行此操作,还是需要编写某种程序?

为了澄清,我只想在 wordlist 部分中获得重复项。

4

2 回答 2

1

DELETE您可以在语句中使用外部联接来执行此操作:

DELETE a FROM tbl a
LEFT JOIN
(
    SELECT MIN(id) AS id
    FROM tbl
    GROUP BY wordlist
) b ON a.id = b.id
WHERE a.category = '<category here>' AND b.id IS NULL

wordlist这将仅消除特定类别的重复项(在列中),并保留最低的类别id

于 2012-07-28T17:10:06.350 回答
0
ALTER IGNORE TABLE your_table ADD UNIQUE INDEX idx_wordlist (wordlist );
于 2012-07-28T16:42:53.140 回答