官方文档: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 statusWHEN 1 THEN 0WHEN 0 THEN 1ELSE statusEND );

  

转载于:https://www.cnblogs.com/waterystone/p/5086118.html

MySQL流程控制函数相关推荐

  1. 零基础带你学习MySQL—流程控制函数(十七)

    零基础带你学习MySQL-流程控制函数(十七) 课堂练习

  2. MySQL流程控制函数-if函数

    流程控制函数 #1. if函数:if else的效果 SELECT IF(10>5,'大', '小') SELECT IF(10>5, '大', '小'); SELECT last_nam ...

  3. MySQL流程控制函数-case结构

    IF 函数 SELECT IF(10>5, '大', '小'); SELECT last_name, commission_pct, IF(commission_pct IS NULL,'没奖金 ...

  4. MySQL讲义第 41 讲——select 查询之函数(4):流程控制函数

    MySQL讲义第41讲--select 查询之函数(4):流程控制函数 文章目录 MySQL讲义第41讲--select 查询之函数(4):流程控制函数 一.数据准备 二.MySQL 流程控制函数介绍 ...

  5. mysql now str,数据库学习之MySQL (十)—— 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE...

    MySQL学习专栏 正在持续更新中:) 文章目录 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE 下章预告 日期和时间函数 NOW ...

  6. 【mysql】流程控制函数

    文章目录 流程控制函数 流程控制函数 流程处理函数可以根据不同的条件,执行不同的处理流程,可以在SQL语句中实现不同的条件选择.MySQL中的流程处理函数主要包括IF().IFNULL()和CASE( ...

  7. mysql函数(五.流程控制函数)

    流程控制函数 1.IF(expr1,expr2,expr3) 判断条件的正误,返回对应值 (1)判断条件的正返回expr2,否则返回expr3 select IF(10>5,'大于','小于') ...

  8. 尚硅谷-MySQL流程控制结构

    MySQL流程控制结构 顺序结构:程序从上到下依次执行 分支结构:程序可以从俩条或多条路径中选择一条执行 循环结构:程序在满足一定条件的基础上,重复执行一段代码 一.分支结构 1.IF函数 功能:实现 ...

  9. mysql 流程控制语句,mysql PL(procedure language)流程控制语句

    在MySQL中,常见的过程式SQL语句可以用在存储体中.其中包括IF语句.CASE语句.LOOP语句.WHILE语句.ITERATE语句和LEAVE语句,它们可以进行流程控制. IF语句相当于Java ...

最新文章

  1. xcode 4.2 不再支持 Window-Based Application 的解决办法(转载)
  2. C/C++实现如下 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++)...
  3. 深度学习(神经网络)[1]——单层感知器
  4. css3动画应用-音乐唱片旋转播放特效
  5. java -jar 启动程序/设置classpath
  6. 再谈几种语言的运行速度比较:看第三方比较结论!
  7. 第一部分 第二章 答案合集(part 1)1006-1023
  8. 适合matlab的编程字体“YAHEI CONSOLAS HYBRID”-下载+安装
  9. 【老生谈算法】matlab实现数字图像复原算法源码——数字图像复原算法
  10. 如何选一款软件助力企业腾飞
  11. java freemarker 动态生成word,再转pdf
  12. QQ号大规模被盗与你我有什么关系?你我该如何做?
  13. 华为防火墙用户与认证
  14. 三层交换机与路由器对接
  15. 数学图形之单叶双曲面
  16. Java中如何打印数组
  17. 医学图像分割知识点总结
  18. Scratch官方教程中文版(3)——让英文字母动起来
  19. 铁匠smith_铁匠的制作:概念和艺术创作
  20. 我想去 河南省 郑州春苑置业有限公司 上班 待遇好不好

热门文章

  1. 白宫计划2019年春季发布新版人工智能研究战略
  2. 2017,AI偏见为何如此受关注?
  3. 一个类型思考了 8 年,依旧是最好的! | 每日趣闻
  4. 远看像乱序执行,近看是内存屏障的 BUG 是如何解决的?
  5. 腻害了!同事写了个隐藏 Bug,我排查了 3 天才解决问题!
  6. UNITY 多个子MESH与贴图的对应关系
  7. Numba——python面向数组高性能计算库
  8. ECMAScript 6入门
  9. Mysql 瓶颈优化
  10. +++++++X86平台系统启动流程