mysql存储过程中的复合IF语句

时间:2013-06-11 02:43:41

标签: mysql

我有一个mysql存储过程,我想在其中编写一个复合的If语句。设a,b,c为变量,然后执行以下if的顺序。

  IF (a AND c=0) OR (b AND c=0) OR (!a AND !b) THEN
    execute the code....

以上If语句不能正常工作。声明中有什么问题吗?  我实际上想知道AND,OR运算符的优先级。

2 个答案:

答案 0 :(得分:0)

我想你想要:

IF (a IS NOT NULL AND c=0) OR (b IS NOT NULL AND c=0) OR (a IS NOT NULL AND b IS NOT NULL) THEN
execute the code....

在SQL中,NULL不像FALSE; SQL使用三态逻辑,其中表达式可以是TRUEFALSENULL,与NULL的所有比较都是FALSE。请参阅文档Working with NULL Values

答案 1 :(得分:0)

If语句允许您根据条件执行一组SQL语句。如果某个条件返回true则执行语句,否则不执行。

阅读:IF statement in MySQL stored procedures