gpt4 book ai didi

mysql - 在 Mysql 中删除重复链接表

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

我继承了一个表,该表提供了两个其他表之间的链接,如下所示:

id | product_id | category_id
1 | 10 | 20
2 | 10 | 21
3 | 34 | 20
4 | 34 | 21
5 | 34 | 21
6 | 10 | 21

在那里,第 2 行和第 6 行以及第 4 行和第 5 行是成对的。

如何编写查询来删除多余的行?

最佳答案

您应该在 product_idcategory_id 上添加一个唯一键,然后将不再可能添加冗余行,因为任何插入都会失败。

但是,只有我们先删除多余的行,您才能这样做。你可以像这样分组找到它们:

 SELECT id FROM table GROUP BY product_id, category_id HAVING COUNT(*) > 1

之后,您可以从结果中获取 ID,用“,”将它们分开,然后运行此删除查询:

DELETE FROM table WHERE id IN({comma separated list of id})

关于mysql - 在 Mysql 中删除重复链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19066182/

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