MYSQL中如何退出外部IF语句
如何退出外部IF语句并继续存储过程MYSQL中如何退出外部IF语句,mysql,if-statement,stored-procedures,Mysql,If Statement,Stored Procedures,如何退出外部IF语句并继续存储过程 IF (true) THEN -- do some work here IF (somethingWrong=true) THEN -- Exit from the outer IF and continue SP END IF; -- do some work here END IF; 您可以只测试相反的条件: 如果为(true),则 /*在这里做些工作*/ 如果(不是什么问题)那么 /*执行此外部IF
IF (true) THEN
-- do some work here
IF (somethingWrong=true) THEN
-- Exit from the outer IF and continue SP
END IF;
-- do some work here
END IF;
您可以只测试相反的条件:
如果为(true),则
/*在这里做些工作*/
如果(不是什么问题)那么
/*执行此外部IF块中剩余的操作*/
如果结束;
如果结束;
如果您有多个这样的实例,您可能不想嵌套IF
块:
IF (true) THEN
/* do some work here */
IF (NOT somethingWrong) THEN
/* do some more work here */
IF (NOT somethingWrong) THEN
/* Do whatever is remaining to do in this outer IF block */
END;
END IF;
END IF;
SET err = 0
IF (true) THEN
/* do some work here */
IF (NOT err)
/* do some more work here that maybe sets the err variable to some non-zero value */
END IF;
IF (NOT err)
/* do some more work here that maybe sets the err variable non-zero */
END IF;
IF (NOT err)
/* do the remaining work */
END IF;
END IF;
。。。这可能会嵌套得很深。相反,使用一个变量(检查语法)来跟踪错误情况,并将IF
s展平。大概是这样的:
IF (true) THEN
/* do some work here */
IF (NOT somethingWrong) THEN
/* do some more work here */
IF (NOT somethingWrong) THEN
/* Do whatever is remaining to do in this outer IF block */
END;
END IF;
END IF;
SET err = 0
IF (true) THEN
/* do some work here */
IF (NOT err)
/* do some more work here that maybe sets the err variable to some non-zero value */
END IF;
IF (NOT err)
/* do some more work here that maybe sets the err variable non-zero */
END IF;
IF (NOT err)
/* do the remaining work */
END IF;
END IF;
您甚至可以在其中使用相同原理的一些循环:
IF (true) THEN
/* do some work here */
IF (NOT err)
/* do some more work here that maybe sets the err variable to some non-zero value */
END IF;
IF (NOT err)
/* do some more work here that maybe sets the err variable non-zero */
END IF;
WHILE (NOT err AND some_loop_condition) DO
/* some work that needs to repeat a few times,
but should be interrupted when err is non-zero */
END WHILE
IF (NOT err)
/* do the remaining work */
END IF;
END IF;
按照您现在拥有代码的方式,执行将以任何方式退出外部
IF
块,无论内部条件是否为true。你到底在寻找什么?如果(somethingherre==true),那么MySQL中就不存在=
,你需要使用=
来检查equals