gpt4 book ai didi

mysql - 使用条件 SET 语句更新旧值

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

我有一个库存表,其中包含各种元素,比如“牛奶”、“苹果”、“茶”。这些项目具有数量值。我的第二个表是表 orderedItem。此表包含某些订单,如“apple”x2、“apple”x3、“milk”x5。

我的查询必须从 orderedItem 表中选择特定的订单行(在我的示例中它是一个包含一定数量“苹果”的订单),获取该订单的数量,然后添加/减去该数量到/从库存表中的相应行/值。

我该如何修复此 SQL 查询 - 我认为手镯中的代码 'quantity FROM orderedItem WHERE productname='apple'' 可能已损坏:

query = mysql_query ("
UPDATE inventory iv
SET quantity = quantity - (quantity FROM orderedItem WHERE productname='apple')
WHERE iv.productname = 'apple' ");

最佳答案

您可以嵌套选择:

UPDATE inventory iv
SET quantity = quantity - (select quantity FROM orderedItem WHERE productname ='apple')
WHERE iv.productname = 'apple' ;

如果不止一行匹配条件(或者即使没有匹配),这将不起作用。所以,您可能想要:

UPDATE inventory iv
SET quantity = quantity - coalesce((select sum(oi.quantity)
from orderedItem oi
where productname = oi.productname
), 0)
WHERE iv.productname = 'apple' ;

关于mysql - 使用条件 SET 语句更新旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33403720/

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