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命令来更新两个不同表中的值。
答案 0 :(得分:4)
UNION
用于SELECT
次查询。如果要运行两个更新,可以使用两个单独的查询:
UPDATE `Order`
SET Order_Cost = '17.88'
WHERE Order_Cost = '16.89';
UPDATE `BagelCard`
SET BagelPoints = '50',
Discount = True
WHERE BagelPoints = '45';
如果您的值是数字,而不是我建议删除单引号。此外,十进制数字(如价格)也应存储为小数/数字而不是浮点数。
我应该注意MySQL 允许你在一个语句中更新两个表。您可以使用JOIN
。在这种情况下,它并没有真正有意义,因为这些表似乎并不相互关联:
UPDATE `Order` o CROSS JOIN
`BagelCard` bc
SET o.Order_Cost = '17.88',
bc.BagelPoints = '50',
bc.Discount = True
WHERE o.Order_Cost = '16.89' AND bc.BagelPoints = '45';