mysql中有的IF判断可以直接在SQL中写出来运行,有的IF不能直接在SQL中运行,但可以写在函数、存储过程及触发器中进行判断。现在有如下案例:
###################################在SQL中的判断######################################################
#IF(表达式,如果表达式成立则返回该值,如果表达式不成立则返回该值)
SELECT IF('a'='a','1','2') result;
#IFNULL(表达式,如果表达式不是null则返回表达式的值,否则返回第二个参数。)
SELECT IFNULL(NULL,'1')
####################################在存储过程、函数及触发器的判断#######################################
#案例1:如果表达式'1'='1'成立,则执行select '1'。
IF
'1'='1'
THEN
SELECT '1';
END IF ;
#案例2:如果表达式'1'='1'成立,则执行SELECT '1',否则执行SELECT '2'。
IF
'1'='1'
THEN
SELECT '1';
ELSE
SELECT '2';
END IF ;
#案例3:如果表达式'1'='1'成立,则执行SELECT '1',如果前一个表达式不成立则执行ELSEIF '2'='2'的判断,
#都不满足条件执行SELECT '3'。
IF
'1'='1'
THEN
SELECT '1';
ELSEIF
'2'='2'
THEN
SELECT '2';
ELSE
SELECT '3';
END IF ;
注意
1、THEN和ELSE后面的SQL需要以分号结尾;
2、IF中的表达式不能用分号结尾;
3、END IF后面需要以分号结尾。