0

我有一个 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 运算符的优先级。

4

1 回答 1

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,并且所有与NULLare 的比较FALSE请参阅使用 NULL 值的文档。

于 2013-06-11T02:48:01.443 回答