MySQL存储过程:IF THEN中的布尔逻辑

xnc*_*oft 6 mysql sql stored-procedures

我正在寻找在IF THEN语句中使用逻辑运算符的正确语法(如果在MySQL存储过程中这是可能的).这是我想做的事情,但我不确定是否应该键入"OR"或"||" 在IF ... THEN子句中:

DELIMITER $$

CREATE PROCEDURE `MyStoredProc` (_id INT)
BEGIN

  DECLARE testVal1 INT DEFAULT 0;
  DECLARE testVal2 INT DEFAULT 0;

  SELECT value1, value2 INTO testVal1, testVal2 
    FROM ValueTable 
   WHERE id = _id;

 IF testVal1 > 0 OR testVal2 > 0 THEN

   UPDATE ValueTable 
      SET value1 = (value1+1) 
    WHERE id=_id;

 END IF;

END$$
Run Code Online (Sandbox Code Playgroud)

G__*_*G__ 0

我还没有尝试过存储过程,但“或”适用于触发器。这是一些当前生产代码的工作片段:

CREATE TRIGGER `update_inventory` AFTER INSERT ON `order_updates` FOR EACH ROW 
begin
   if new.type = 'received' or new.type = 'used' or new.type = 'returned' then 
...
Run Code Online (Sandbox Code Playgroud)