我在MySQL数据库中有一些行是重复的,但它们的ID号除外。
例如,我可能将以下代码设置为两行:
ID | wordlist | category
845 | abashed | confused
1800 | abashed | confused我想找到他们所有的人,只留下一个。
我可以使用SQL来做这件事吗?或者我需要编写某种程序吗?
为了清楚起见,我只想在单词列表部分中获取重复项。
发布于 2012-07-29 01:10:06
您可以在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-29 00:42:53
ALTER IGNORE TABLE your_table ADD UNIQUE INDEX idx_wordlist (wordlist );https://stackoverflow.com/questions/11702793
复制相似问题