gpt4 book ai didi

Mysql UPDATE where distinct or unique

转载 作者:行者123 更新时间:2023-11-28 23:11:19 26 4
gpt4 key购买 nike

我正在尝试创建一个查询来批量更新 id_product 不同的值 (default_on)。

UPDATE ps_product_attribute_shop
SET default_on=1
FROM ps_product_attribute_shop
JOIN
(
SELECT id_product
FROM 'ps_product_attribute_shop'
GROUP BY id_product
HAVING COUNT(*) = 1
) AS FIRST_PRODUCT
ON FIRST.id_product = ps_product_attribute_shop.id_product

我的数据库看起来像:

   id | product_id | default_on
___________________________
1 | 11238 | NULL
2 | 11238 | NULL
3 | 11238 | NULL
4 | 11252 | NULL

因此,正如我上面的例子,11238 可以被多次找到,11252 可以被找到一次。所以我只需要更新所有找到的 11238 和记录 11252

中的一条记录

但是不工作:(

最佳答案

你的语法不对。应该是这样的:

UPDATE ps_product_attribute_shop t1
INNER JOIN
(
SELECT id_product, MIN(id) AS min_id
FROM ps_product_attribute_shop
GROUP BY id_product
) t2
ON t1.id_product = t2.id_product AND
t1.id = t2.min_id
SET t1.default_on = 1

除了命令顺序错误之外,您还将表名放在子查询中的单引号中。 MySQL 中的单引号表示字符串文字。

更新:

为了处理您显示的更新逻辑,我们可以任意更新每个产品组的最小 id 记录。上述更新中的子查询标识应更新的记录。

关于Mysql UPDATE where distinct or unique,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45895419/

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