我有一个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运算符的优先级。
答案 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使用三态逻辑,其中表达式可以是TRUE
,FALSE
或NULL
,与NULL
的所有比较都是FALSE
。请参阅文档Working with NULL Values。
答案 1 :(得分:0)
If语句允许您根据条件执行一组SQL语句。如果某个条件返回true则执行语句,否则不执行。