MySQL的IF既可以作为表达式用,可在存储过程中作为流程控制语句使用。

1、IF表达式

IF(expr1,expr2,expr3)

expr1 是TRUE (expr1 0 and expr1 NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。

IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定

SELECT IF(sex=1,"男","女") AS s FROM t_user;

2、CASE WHEN表达式:

SELECT CASE sexWHEN 1 THEN '男'  ELSE '女'END AS sFROM table_nameWHERE sex != '';

3、IFNULL表达式

IFNULL(expr1,expr2)

expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境

 SELECT IFNULL(2,0); -> 2SELECT IFNULL(NULL,1); -> 1SELECT IFNULL(1/0,'ok');-> 'ok'