首页 > 学院 > 开发设计 > 正文

MySQL笔记六之 条件判断函数

2019-11-08 20:51:52
字体:
来源:转载
供稿:网友

[TOC] MySQL中进行条件判断的函数有IF、IFNULL和CASE。

1.IF(exPR,v1,v2)函数

mysql> SELECT IF(1>2,2,3),IF(1<2,'yes','no'),IF(STRCMP('test','test1'),'no','yes');+-------------+--------------------+---------------------------------------+| IF(1>2,2,3) | IF(1<2,'yes','no') | IF(STRCMP('test','test1'),'no','yes') |+-------------+--------------------+---------------------------------------+| 3 | yes | no |+-------------+--------------------+---------------------------------------+1 row in set (0.05 sec)

说明: IF(expr,v1,v2) expr结果为true则返回v1,结果为false则返回v2。

2.IFNULL(v1,v2)函数

mysql> SELECT IFNULL(1,2),IFNULL(NULL,10),IFNULL(1/0,'wrong');+-------------+-----------------+---------------------+| IFNULL(1,2) | IFNULL(NULL,10) | IFNULL(1/0,'wrong') |+-------------+-----------------+---------------------+| 1 | 10 | wrong |+-------------+-----------------+---------------------+1 row in set (0.00 sec)

说明: IFNULL(v1,v2)假如v1不为NULL, 则IFNULL()的返回值为v1;否则其返回值为v2。

3.CASE函数

mysql> SELECT CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;+------------------------------------------------------------+| CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END |+------------------------------------------------------------+| two |+------------------------------------------------------------+1 row in set (0.00 sec)mysql> SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END;+--------------------------------------------+| CASE WHEN 1<0 THEN 'true' ELSE 'false' END |+--------------------------------------------+| false |+--------------------------------------------+1 row in set (0.00 sec)

说明: 1.CASE expr WHEN v1 THEN r1[WHEN v2 THEN r2] [ELSE rn] END 该函数表示,如果expr值等于某个vn,则返回对应位置THEN后面的结果,如果都不匹配,则返回ELSE后面的rn

2.CASE WHEN v1 THEN r1[WHEN v2 THEN r2] ELSE rn END 该函数表示某个vn值为true时,返回对应位置THEN后面的结果,如果所有值都不为TRUE,则返回ELSE后的rn。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表