在一条SQL语句中更新两个不同的表

在一条SQL语句中更新两个不同的表,sql,updating,Sql,Updating,这是我在两个不同表中更新值的sql代码。是这样吗?或者我应该使用什么sql命令来更新两个不同表中的值。UNION用于SELECT查询。如果要运行两个更新,可以使用两个单独的查询: UPDATE `Order` SET Order_Cost ='17.88' WHERE Order_Cost ='16.89' UNION UPDATE `BagelCard` SET BagelPoints = '50',Discount = True WHERE BagelPoints ='45'; 如果您

这是我在两个不同表中更新值的sql代码。是这样吗?或者我应该使用什么sql命令来更新两个不同表中的值。

UNION
用于
SELECT
查询。如果要运行两个更新,可以使用两个单独的查询:

UPDATE `Order`
SET Order_Cost ='17.88' 
WHERE Order_Cost ='16.89'
UNION 
UPDATE `BagelCard`
SET BagelPoints = '50',Discount = True
WHERE BagelPoints ='45';
如果您的值是数字,我建议删除单引号。此外,价格等十进制数字应存储为小数/数字,而不是浮点数

我应该注意,MySQL确实允许您在一条语句中更新两个表。您可以使用
JOIN
。在这种情况下,这是没有意义的,因为表之间似乎没有关联:

UPDATE `Order`
    SET Order_Cost = '17.88' 
    WHERE Order_Cost = '16.89';

UPDATE `BagelCard`
    SET BagelPoints = '50',
        Discount = True
    WHERE BagelPoints = '45';

UNION
用于
SELECT
查询。如果要运行两个更新,可以使用两个单独的查询:

UPDATE `Order`
SET Order_Cost ='17.88' 
WHERE Order_Cost ='16.89'
UNION 
UPDATE `BagelCard`
SET BagelPoints = '50',Discount = True
WHERE BagelPoints ='45';
如果您的值是数字,我建议删除单引号。此外,价格等十进制数字应存储为小数/数字,而不是浮点数

我应该注意,MySQL确实允许您在一条语句中更新两个表。您可以使用
JOIN
。在这种情况下,这是没有意义的,因为表之间似乎没有关联:

UPDATE `Order`
    SET Order_Cost = '17.88' 
    WHERE Order_Cost = '16.89';

UPDATE `BagelCard`
    SET BagelPoints = '50',
        Discount = True
    WHERE BagelPoints = '45';

我不知道MySQL允许使用交叉连接更新两个表,很高兴知道。然而,在我看来,这个问题可能很难理解,也很容易被误解。为了更好的可读性,我更喜欢将查询分开。@AlbertoSolano。我更喜欢使用两个单独的查询(第一个解决方案),尤其是在这种情况下。然而,在重新阅读问题时,OP似乎要求一个命令来更新多个表。是的,OP当然要求一个命令。我不反对你的回答(顺便说一句,我加了一票)。我的只是对单命令查询可读性的评论。:-)我不知道MySQL允许使用交叉连接更新两个表,很高兴知道。然而,在我看来,这个问题可能很难理解,也很容易被误解。为了更好的可读性,我更喜欢将查询分开。@AlbertoSolano。我更喜欢使用两个单独的查询(第一个解决方案),尤其是在这种情况下。然而,在重新阅读问题时,OP似乎要求一个命令来更新多个表。是的,OP当然要求一个命令。我不反对你的回答(顺便说一句,我加了一票)。我的只是对单命令查询可读性的评论。:-)