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