0

我想创建一个包含一系列要检查的条件的 MySQL 存储过程。

IF (a && b) then
  IF c =1 then
    IF d < e then
      check conditions 1,2,3...
    END IF
  ELSE
    check conditions 1,2,3...
  END IF
END IF

我想以这样的方式编写程序,即条件 1、2、3 应该写成通用的,这样程序就会像

IF (a && b) then
 IF c =1 then
   IF d < e then
     goto label check;
   END IF
 ELSE
   goto label check;
 END IF
END IF 

label:label check;
  check conditions 1,2,3...

由于 MySQL 存储过程中不存在 goto,我该如何编写该过程?

4

2 回答 2

0

尝试这个:

IF a AND b THEN
  IF c = 1 AND d < e OR c != 1 then
    check conditions 1,2,3...
  END IF
END IF
于 2013-05-26T08:10:41.147 回答
0

我建议不要使用goto,即使可用 (*)。

您的代码可以简化如下:

IF a AND b AND (c != 1 OR d < e) THEN
    check conditions
END IF

此外,混合文字 ( AND, OR) 布尔运算符和它们的符号对应物 ( &&, ||) 会使您的代码看起来很奇怪(但这只是我的看法)。

只是为了避免一场激烈的战争,是的,有时候一点 goto 并没有那么糟糕,但这是一个 goto 滥用的完美例子

于 2013-05-26T08:35:15.617 回答