首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中删除重复行?

问如何在MySQL中删除重复行?
EN

Stack Overflow用户
提问于 2012-07-29 00:38:00
回答 2查看 90关注 0票数 0

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

例如,我可能将以下代码设置为两行:

代码语言:javascript
复制
ID   | wordlist | category
845  | abashed  | confused
1800 | abashed  | confused

我想找到他们所有的人,只留下一个。

我可以使用SQL来做这件事吗?或者我需要编写某种程序吗?

为了清楚起见,我只想在单词列表部分中获取重复项。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-29 01:10:06

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

代码语言:javascript
复制
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的类别。

票数 1
EN

Stack Overflow用户

发布于 2012-07-29 00:42:53

代码语言:javascript
复制
ALTER IGNORE TABLE your_table ADD UNIQUE INDEX idx_wordlist (wordlist );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11702793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档