【发布时间】:2012-10-21 01:04:03
【问题描述】:
我想在一个巨大的表中为单个属性创建一个唯一索引,但是存在重复值,所以我需要删除重复性。只能删除重复的记录。 phpmyadmin 或 mysql 查询中执行此操作的最佳解决方案是什么?
我想出的唯一解决方案是将 select 放入另一个表中,但我更愿意从原始表中删除数据。
表格看起来像这样(我想在id 上放置唯一索引)
|id|...
+--+---
| 1|x
| 2|a <-- duplicity
| 2|b <-- duplicity
| 3|c
| 4|d
这将是最好的结果
|id|...
+--+---
| 1|x
| 2|a
| 3|c
| 4|d
这也是可以接受的结果
|id|...
+--+---
| 1|x
| 3|c
| 4|d
【问题讨论】:
-
如果我没记错的话,只需创建一个
UNIQUE索引即可删除重复项。如果没有,只需创建一个临时表即可INSERT ... SELECT DISTINCT id... -
为什么
(2, a)比(2, b)更受欢迎? -
@eggyal:
2, a不比2, b好,但其中一个必须去,我不在乎哪个。 @njk:尝试创建唯一索引会导致错误
标签: mysql phpmyadmin