我有一个 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 运算符的优先级。
最佳答案
我想你想要:
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 使用三态逻辑,其中表达式可以是 TRUE
、FALSE
或 NULL
,并且所有比较都与 NULL
> 是FALSE
。请参阅文档 Working with NULL Values .
关于mysql - mysql存储过程中复合IF语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035759/