gpt4 book ai didi

mysql - 使用 update 语句修复 mysql 表中的重复字段

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

我继承了一个带有“sku”字段的表,该字段应该是唯一的,但由于 sku 生成方法失败,现在周围散布着数十个重复项。

我需要通过运行更新并将记录 ID 附加到 SKU 来快速修复这些重复项(应用程序的其他部分在遇到这些重复记录时会失败)(这是目前此应用程序的有效解决方案) .

我正在尝试运行:

UPDATE
main_product_table
SET sku = CONCAT(sku, '-', CAST(product_id as CHAR) )

WHERE sku IN (
SELECT sku FROM main_product_table
GROUP BY sku
HAVING COUNT(*) > 1
);

但我收到:

You can't specify target table 'main_product_table' for update in FROM clause

有没有办法达到同样的效果? mysql 是否提示我在更新和子查询中都有 main_product_table 来获取重复项?

谢谢!

最佳答案

试试这个:

UPDATE
main_product_table
SET sku = CONCAT(sku, '-', CAST(product_id as CHAR) )

WHERE sku IN (
select * from ( SELECT sku FROM main_product_table
GROUP BY sku
HAVING COUNT(*) > 1) as p
);

在内部查询中添加了表别名。

关于mysql - 使用 update 语句修复 mysql 表中的重复字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895120/

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