官方文档:Control Flow Functions

Name Description
CASE Case operator
IF() If/else construct
IFNULL() Null if/else construct
NULLIF() Return NULL if expr1 = expr2

1. IF

IF(expr1,expr2,expr3)
如果 expr1 是TRUE (即expr1<>NULL AND expr1<>0),则IF()的返回值为expr2; 否则返回值则为 expr3。

SELECT IF(status >= 0 AND status_promotion = 1, 1, 2) AS status FROM my_table;

  

2. IFNULL

IFNULL(expr1,expr2)
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。

3. NULLIF

NULLIF(expr1,expr2)
如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为 expr1。

4. CASE...WHEN

4.1 CASE后面不带表达式

CASE
WHEN expression THEN 操作1
WHEN expression THEN 操作2
.......
ELSE 操作n
END

4.2 CASE后面带表达式

CASE expression
WHEN expression值1 THEN 操作1
WHEN expression值2 THEN 操作2
.......
ELSE 操作n
END

注意:1)NULL和0是等同的,0和'0'是不同的;2)如果没有ELSE,则返回NULL。

UPDATE test SET status = (
CASE status
WHEN 1 THEN 0
WHEN 0 THEN 1
ELSE status
END );

  

最新文章

  1. Atom编辑器添加eclipse快捷键
  2. 3-附1 -&gt;和*的区别
  3. iOSpush过后返回多级界面
  4. SSH框架面试题
  5. 递归法绑定文件夹到导航树&amp;在指定文件夹下新建文件夹
  6. 安装指南:Win10下安装CentOs7
  7. windows 下删除.svn文件
  8. C#泛型理解(转)
  9. 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
  10. iOS监听模式系列之键值编码KVC、键值监听KVO的简单介绍和应用
  11. Git 学习总结
  12. Notes of Daily Scrum Meeting(12.25)
  13. 异常的Error与Exception
  14. Hive的一些理解
  15. MySQL笔记(五)MySQL 角色与SQL CHECK约束
  16. Linux下编译安装nginx并且监控
  17. spark开启远程调试
  18. Golang reflect 反射
  19. mysql &quot;Your password has expired....&quot;错误解决方案
  20. 什么是2MSL

热门文章

  1. python 操作 office
  2. CSS中display:block的使用介绍
  3. Enum Types
  4. vi高级技巧
  5. Java 常调用的Webservice接口的方法
  6. 编写jeb插件打印目标方法的交叉引用
  7. [RxJS] Sharing Streams with Share
  8. linux高级技巧:heartbeat+lvs(一)
  9. linux上网络配置不生效的怪异现象处理
  10. gnuplot常用技巧