MySQL IF
语句可以用作表达式用,也可以作为流程控制语句;作为表达式时,它类似三目运算符,而作为流程控制语句时,它其实是条件表达式。
IF 表达式
表达式如下:
IF(expr, v1, v2)
类似三目运算符,如果表达式 expr
为真(TRUE
),返回值为 v1
,反之则返回值为 v2
。
示例如下:
SELECT id, IF(status >= 1, 1, 0) AS valid FROM post;
如上所述,只要 post 表的 status 字段大于等于 1,查询的返回值为 1,且命名返回字段名为 valid,反之则 0。
IF 流程控制语句
MySQL 的 IF 语句结合 THEN
、ELSEIF
、ELSE
和 END
等关键字作为流程控制语句,IF 实现条件判断,满足不同条件执行不同的操作,语法如下:
IF condition THEN
statements;
[ELSEIF condition THEN
statements;]
...
...
[ELSE
statements;]
END IF;
如上语法,如果 condition 计算结果为 TRUE,则执行 THEN 之后的语句。