我相信我的问题已被问到,但我没有找到答案。
有一个mysql表mytable
,其中一列mycolumn
。
从表中删除重复项的mysql查询是什么?
答案 0 :(得分:2)
只有一列没有pk或其他列可以用来查看它们是否不同? 如果是的话,这是一个不好的做法。考虑为每条记录插入一个新列(数字)并插入id,而不是尝试此查询:
delete from table
where counter > 1 and inner_query.mycolumn = table.mycolumn and inner_query.col_id = table.col_id from
(select mycolumn, col_id, count (mycolumn) counter
from table group by mycolumn
) inner_query
,可以添加主键
答案 1 :(得分:1)
只要没有触发器或外键,这是一种方法。未经测试,因为我在手机上,但应该工作。在此之后,可以在mycolumn上创建一个唯一索引,以避免重复。
Create table _mytable
Select distinct mycolumn from mytable;
delete from mytable;
Insert into mytable(mycolumn)
Select mycolumn from _mytable;
Drop table _mytable;