gpt4 book ai didi

mysql - 根据 3 列从表中清除重复条目

转载 作者:行者123 更新时间:2023-11-29 06:49:55 24 4
gpt4 key购买 nike

我需要清除我的数据库,我需要删除所有基于 3 列的重复条目。

我试过这个:

ALTER IGNORE TABLE prod_assoc_variacao ADD UNIQUE INDEX idx_name (fk_produto, fk_grupo, fk_classificador )

但我收到错误消息,告诉我有几行有重复条目,因此删除重复条目不起作用。

所以我也试过了:

DELETE
FROM prod_assoc_variacao
WHERE prod_assoc_variacao.id IN (
SELECT MAX(id)
FROM prod_assoc_variacao
GROUP BY fk_produto, fk_grupo, fk_classificador
HAVING COUNT(*) > 1)

但我收到 [Err] 1093 - 您不能在 FROM 子句中指定目标表 'prod_assoc_variacao' 进行更新。

现在我不知道该怎么办,我的 sql 不是很好,也不知道。

我非常感谢任何帮助。

提前致谢。

最佳答案

可以在删除时加入表本身:

delete prod_assoc_variaca from prod_assoc_variaca
inner join prod_assoc_variaca p2 on prod_assoc_variaca.fk_produto = p2.fk_produto
and prod_assoc_variaca.fk_grupo = p2.fk_grupo
and prod_assoc_variaca.fk_classificador = p2.fk_classificador
and prod_assoc_variaca.id < p2.id;

SQL Fiddle Demo

只需重新阅读您的帖子——如果您想删除较高的 ID,请改用 >。

关于mysql - 根据 3 列从表中清除重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com