在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。
1、IF()函数的使用
IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。
|
1
2
|
SELECT IF(TRUE,'A','B'); -- 输出结果:ASELECT IF(FALSE,'A','B'); -- 输出结果:B |
2、IFNULL()函数的使用
IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。
例1
|
1
2
3
4
5
6
7
8
|
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'yes'); -> 'yes' |
例2
|
1
2
|
SELECT IFNULL(NULL,'B'); -- 输出结果:BSELECT IFNULL('HELLO','B'); -- 输出结果:HELLO |
3、NULLIF()函数的使用
NULLIF和ISNULL其实都是coalesce(expr,value1,value2,...,valuen)的简化版,返回第一个非空值。
NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。
|
1
2
|
SELECT NULLIF('A','A'); -- 输出结果:nullSELECT NULLIF('A','B'); -- 输出结果:A |
4、ISNULL()函数的使用
ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。
|
1
2
|
SELECT ISNULL(NULL); -- 输出结果:1SELECT ISNULL('HELLO'); -- 输出结果:0 |
浙公网安备 33010602011771号