MySQL笔记六之 条件判断函数
2017-02-09 08:39
387 查看
[TOC]
MySQL中进行条件判断的函数有IF、IFNULL和CASE。
说明:
IF(expr,v1,v2) expr结果为true则返回v1,结果为false则返回v2。
说明:
IFNULL(v1,v2)假如v1不为NULL, 则IFNULL()的返回值为v1;否则其返回值为v2。
说明:
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。
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。
相关文章推荐
- MySQL读写分离之Atlas
- mysql索引总结----mysql 索引类型以及创建
- mysql 三大范式
- MySql BETWEEN 的两种用法
- 由于MySql中没有boolean类型,所以会用到tinyint[1]类型来表示
- mysql 全量与增量交替备份
- MySQL 列的增删改
- mysql分表和表分区详解
- mysql 缺失 查询
- 浅谈Mysql的几种常见注册连接(附带配置文件)
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- Windows 7系统下MysQL 5.7.17 简易安装
- Mysql删除重复记录,保留id最小的一条
- MySQL B+树索引和哈希索引的区别
- mysql数据库引擎Myisam和InnoDb对比
- Hibernate+MySQL连接超时解决办法
- mysql show profile
- cenos6.5安装与配置mysql
- Ubuntu的MySQL中文乱码问题--自己躺坑
- Ubuntu14.04下如何开启Mysql远程访问