select语句(mysql)中满足条件后的update语句

select语句(mysql)中满足条件后的update语句,mysql,sql,Mysql,Sql,如果所选表格为真,我在更新时遇到问题 如果此select语句为true (SELECT COUNT(*) FROM Add_bonus WHERE value > 0) > 0) THEN do UPDATE bonus SET amount = amount + 10 WHERE 1 只有MySQL中的存储过程、函数和触发器才允许使用if语句。只需一次更新即可完成此操作: UPDATE bonus SET amount = amount + 10 WHERE ex

如果所选表格为真,我在更新时遇到问题

如果此select语句为true

(SELECT COUNT(*) FROM Add_bonus WHERE value > 0) > 0)
THEN do
UPDATE bonus SET amount = amount + 10 WHERE 1

只有MySQL中的存储过程、函数和触发器才允许使用
if
语句。只需一次更新即可完成此操作:

UPDATE bonus
    SET amount = amount + 10
    WHERE exists (select 1 from Add_Bonus where value > 0);
请注意,当
add\u bonus
表中存在任何适当的行时,此查询将更新
bonus
表中的所有行。这似乎是您最初查询的目的。更常见的情况是,可能有一个员工id链接这两个表

另请注意,
的用法存在
。这通常比使用
count(*)
更有效,因为它可以在匹配的第一行上停止处理