如果此select语句为真
(SELECT COUNT(*) FROM Add_bonus WHERE value > 0) > 0)
THEN do
UPDATE bonus SET amount = amount + 10 WHERE 1
答案 0 :(得分:2)
if
语句仅允许在MySQL中的存储过程,函数和触发器中使用。您可以通过一次更新来完成此操作:
UPDATE bonus
SET amount = amount + 10
WHERE exists (select 1 from Add_Bonus where value > 0);
请注意,当bonus
表中存在任何适当的行时,此查询将更新add_bonus
表中的所有行。这似乎是您原始查询的意图。更常见的是,可能有一个员工ID链接这两个表。
另请注意exists
的使用。这通常比使用count(*)
更有效,因为它可以在匹配的第一行停止处理。