gpt4 book ai didi

mysql - 插入(使用select语句)和额外的基于select语句的ON DUPLICATE KEY UPDATE

转载 作者:行者123 更新时间:2023-12-04 08:25:47 26 4
gpt4 key购买 nike

我有一个相当嵌套的 mysql 查询,并想根据 select 语句插入或更新值。
以下代码已简化,但演示了我遇到的问题。

INSERT INTO product_feeds(`product_id`,`vat_dk`) select p.product_id,
round(((select p2.`calc_value` from product_prices p1 left join calcs p2 on
p1.product_tax_id=p2.calc_id where p1.product_id=p.product_id and p1.product_currency = '40')/100+1),2)
as vat_dk from products p where vendor_id = 1 ON DUPLICATE KEY UPDATE `vat_dk` = '1.25'
INSERT 查询中的值设置正确。但是,如何为 ON DUPLICATE KEY UPDATE 部分设置正确的值。每当我用上面的查询替换“1.25”时,它都会抛出错误。
非常感谢任何帮助。

最佳答案

您可以使用 VALUES()引用否则会插入的值。
所以:

insert into product_feeds(`product_id`,`vat_dk`) 
select
p.product_id,
round(
(
(
select p2.`calc_value`
from product_prices p1
left join calcs p2 on p1.product_tax_id = p2.calc_id
where p1.product_id = p.product_id and p1.product_currency = '40'
) / 100 + 1
), 2
) as vat_dk
from products p
where vendor_id = 1
on duplicate key update vat_dk = values(vat_dk)

关于mysql - 插入(使用select语句)和额外的基于select语句的ON DUPLICATE KEY UPDATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65271030/

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