我想创建一个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,我该如何编写程序?
答案 0 :(得分: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
答案 1 :(得分:0)
我建议不要使用goto
,即使可用(*)。
您的代码可以简化如下:
IF a AND b AND (c != 1 OR d < e) THEN
check conditions
END IF
此外,混合litteral(AND
,OR
)布尔运算符及其符号对应项(&&
,||
)会使您的代码看起来很奇怪(但这只是我的观点)。
只是为了避免火焰战争,是的,有时候一点点goto也不是那么糟糕,但这是一个完美的滥用goto的例子