编辑:我添加了一个响应链接和命令,解决了我的问题。为了让任何未来的读者都对他们未经索引的重复行表有所了解,你可以在下面或上面的链接中找到答案。
我的数据库中有一点搞砸了。它是重复的行,具有完全相同的信息(包括id)。
我是否可以使用查询来删除这些重复的ID但只有一个? 我想先在这里查看我的答案,如果我删除这个表,它将带我整个周末再次导入它(它很大)......
我正在考虑做
DELETE FROM tickets t1, tickets t2 WHERE t1.id = t2.id limit 1;
我不确定这会有效...... 谢谢!
答案 0 :(得分:2)
正如Oceans所说
CREATE TEMPORARY TABLE tmp_tickets AS SELECT DISTINCT * FROM tickets;
DELETE FROM tickets;
INSERT INTO tickets SELECT * FROM tmp_tickets;
DROP TABLE tmp_tickets;
答案 1 :(得分:1)
要查找id
列中的所有重复内容,您可以尝试:
select `id`
from `tickets`
group by `id`
having count(`id`)>1;
我会在gui(Heidi等)中尝试这个〜然后你可以在gui或直接查询中手动执行你的删除操作。
答案 2 :(得分:0)
我设法使用此处Remove duplicate rows in MySQL找到的解决方案解决了这个问题。为了节省您点击链接,查询看起来像这样
ALTER IGNORE TABLE jobs
ADD UNIQUE INDEX idx_name (site_id, title, company);
它删除了所有重复的索引,减去了一个。