MySQL:使用多个 if 语句触发
MySQL: Trigger with multiple if statements
我有一个 MySQL 触发器,它有条件地(使用 IF 语句)使用来自另一个 table 的三列之一的随机值更新两列。当我更改两个条件值之一时,两个随机列都会更新,而它应该只是一个。任何帮助都会很棒!
DBfiddle帮忙解释问题:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=d2ad0a292678fb5ed39f6bc3e9c8ef11
如果新值不等于旧值,您应该添加条件:
IF (NEW.selection2 <> OLD.selection2 AND NEW.selection2 = 'fruits') THEN
SET NEW.selection2_random = ( SELECT fruits
FROM lists
ORDER BY RAND() LIMIT 1 );
END IF;
虽然在 BEFORE UPDATE 触发器中,NEW 行引用更新前的所有值,这意味着对于 UPDATE SET 子句中未提及的那些列,NEW 行将包含旧值。
我有一个 MySQL 触发器,它有条件地(使用 IF 语句)使用来自另一个 table 的三列之一的随机值更新两列。当我更改两个条件值之一时,两个随机列都会更新,而它应该只是一个。任何帮助都会很棒!
DBfiddle帮忙解释问题:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=d2ad0a292678fb5ed39f6bc3e9c8ef11
如果新值不等于旧值,您应该添加条件:
IF (NEW.selection2 <> OLD.selection2 AND NEW.selection2 = 'fruits') THEN
SET NEW.selection2_random = ( SELECT fruits
FROM lists
ORDER BY RAND() LIMIT 1 );
END IF;
虽然在 BEFORE UPDATE 触发器中,NEW 行引用更新前的所有值,这意味着对于 UPDATE SET 子句中未提及的那些列,NEW 行将包含旧值。