2
IM ...更新語句select語句(MySQL的),如果有選擇的表是真正的更新有問題
會見如果此select語句是真的
(SELECT COUNT(*) FROM Add_bonus WHERE value > 0) > 0)
THEN do
UPDATE bonus SET amount = amount + 10 WHERE 1
IM ...更新語句select語句(MySQL的),如果有選擇的表是真正的更新有問題
會見如果此select語句是真的
(SELECT COUNT(*) FROM Add_bonus WHERE value > 0) > 0)
THEN do
UPDATE bonus SET amount = amount + 10 WHERE 1
的if
語句僅允許在MySQL中存儲過程,函數和觸發器。你可以用一個更新做到這一點:
UPDATE bonus
SET amount = amount + 10
WHERE exists (select 1 from Add_Bonus where value > 0);
注意,當add_bonus
表中存在的任何適當的行此查詢將更新在bonus
表中的所有行。這似乎是您的原始查詢的意圖。更常見的是,可能有一個員工ID鏈接這兩個表。
另請注意使用exists
。這通常比使用count(*)
更有效,因爲它可以停止匹配的第一行上的處理。
謝謝你超級好! –