我有一个 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 运算符的优先级。
我有一个 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
are 的比较FALSE
。请参阅使用 NULL 值的文档。