条件判断函数也称为控制流程函数,根据满足的不同条件,执行相应的流程。MySQL中进行条件判断的函数有IF、IFNULL和CASE。
一、IF(expr,v1,v2)函数
IF(expr,v1,v2):如果表达式expr是TRUE(expr<>0 and expr<>NULL),则返回值为v1;否则返回值为v2。IF()的返回值为数字值或字符串值。
如果v1或v2中只有一个明确是NULL,则IF()函数的结果类型为非NULL表达式的结果类型。
二、IFNULL(v1,v2)函数
IFBULL(v1,v2):假如v1不为NULL,则IFNULL的返回值为v1;否则其返回值为v2。IFNULL()的返回值是数字或者字符串。
三、CASE函数
CASE expr WHEN v1 THEN r1 [WHNE v2 THEN r2]...[ELSE rn+1]END:如果expr值等于某个vn,则返回对应位置THEN后面的结果;如果与所有值都不相等,则返回ELSE后面的rn+1。
CASE WHEN v1 THEN r1 [WHNE v2 THEN r2]...[ELSE rn+1]END:某个vn值为TRUE时,返回对应位置THEN后面的结果;如果所有值都不为TRUE,则返回ELSE后的rn+1。