1. 程式人生 > >MySQL中的if和case用法

MySQL中的if和case用法

Mysql中的if既可以作為表示式使用,也可以在儲存過程中作為流程控制語句使用。

IF表示式

IF(expr1,expr2,expr3)

如果expr1是TRUE(expr1 <> 0 and expr1 <> NULL),則if()的返回值為expr2,否則為expr3。

select *,if(sva=1,"男","女")as sva from tab;

作為表示式的if也可以用case when來實現

select case sva when 1 then '男' when 2 then '女' else '未知' end as sva from tab;

如果case有when後面的匹配值則返回then的值,否則返回else的值,如果沒有else部分,則返回NULL。

IFNULL(expr1,expr2)

如果expr1不為NULL,則返回值是expr1;否則返回expr2。

IF ELSE 作為流程控制語句使用

IF search_condition Then
    statement_list
[ELSEIF search_condition Then]
[ELSE
    statemeny_list]
END IF;