我想在一个巨大的表中创建一个关于单个属性的唯一索引,但是有重复的值,所以我需要删除两个单一性。只能删除重复记录。 phpmyadmin或mysql查询中最好的解决方案是什么?
我想出的唯一解决方案是选择另一个表,但我更愿意删除原始表中的数据。
表格如下(我想在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
答案 0 :(得分:4)
ALTER IGNORE TABLE my_table ADD UNIQUE INDEX (id);
答案 1 :(得分:1)
DELETE a
FROM tableName a
LEFT JOIN
(
SELECT id, min(colName) x
FROM tableName
GROUP BY id
) c
ON a.id = c.id AND
a.colName = c.x
WHERE c.id IS NULL;
答案 2 :(得分:1)
DELETE FROM table
WHERE id IN
(SELECT id FROM table, (SELECT id, count(*) dNum FROM table GROUP BY id) x
WHERE id = x.id
ORDER BY id DESC LIMIT dNum-1)