我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL流程控制函数汇总分析讲解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL流程控制函数汇总分析讲解

在 mysql 中,流程控制函数是指可以控制存储过程(stored procedure)或函数(function)中执行流程的语句。以下是几个常用的流程控制函数:

1.IF函数

实现IF……ELSE……的效果。

# 如果expr1为true,则返回expr2,否则返回expr3
IF(expr1,expr2,expr3)

可以看出,IF函数与三元运算符很像,如:

		// 比较最大数
        int a=10;
        int b=5;
        // 比较
        int bigNum=a>b?a:b;

即,将IF函数的三个参数中,expr1是条件表达式,最终结果是true或false,如果条件成立(true)则返回expr2,如果条件不成立(false)则返回expr3。例:

SELECT IF(10>5,10,5) AS bigNum;

MySQL流程控制函数汇总分析讲解

2.IFNULL函数

同样是实现IF……ELSE……的效果,相当于IF函数的变种。

# 如果expr1不为NULL,则返回expr1,否则返回expr2
IFNULL(expr1,expr2)

即将原本的条件表达式变形为判断expr1是否为null,不为null就是其本身(expr1),为空则是expr2.

SELECT IFNULL(null,'不空') AS notNull

MySQL流程控制函数汇总分析讲解

相当于IF函数的

SELECT IF(null IS NULL,null,'不空') AS notNull

判断expr1是否为空,为空(true)显示expr2,不为空(false)显示expr3

3.CASE函数

case函数有两种不同的效果

switch case

相当于Java中的switch case的效果。即switch中的变量表达式的值与case后面的常量比较。

		int week=3;
        switch (week){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("非法数据");
                break;
        }

用sql表示:

# NOW()函数用于获取当前日期和时间,
# WEEKDAY(date)函数,表示返回date对应的工作日索引,
# 因为索引从0开始,所以加1;也可以不加1,将when的常量改为工作日索引也可
SELECT CASE WEEKDAY(NOW())+1
	WHEN 1 THEN '星期一'
	WHEN 2 THEN '星期二'
    WHEN 3 THEN '星期三'
    WHEN 4 THEN '星期四'
    WHEN 5 THEN '星期五'
    WHEN 6 THEN '星期六'
    WHEN 7 THEN '星期日'	
	ELSE '非法数据'
END AS `week`;

MySQL流程控制函数汇总分析讲解

函数结构

case  要判断的变量(字段)或表达式
when  常量1  then  要显示的值1(或语句1);
when  常量2  then  要显示的值2(或语句2);
.......
else  要显示的值n或语句n;
end

注意:

  • 与java不同,直接写case而不是switch,且没有大括号
  • when后面直接加常量值,不用写冒号,用的是then
  • then后面如果是显示的值,不需要加分号;如果then后面加的是语句,就需要加分号。
  • when……then……语句可以有多个。
  • 默认情况用的是else。
  • 结尾用end

4.多重IF

类似于java中的多重if判断。

		int grade=87;
        if (grade>=90){
            System.out.println("优秀");
        }else if (grade>=80){
            System.out.println("良好");
        }else if (grade>=70){
            System.out.println("一般");
        }else if (grade>=60){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }

用sql表示:

SELECT id,`name`,chinese,
	CASE
		WHEN chinese>=90 THEN '优秀'
		WHEN chinese>=80 THEN '良好'
		WHEN chinese>=70 THEN '一般'
		WHEN chinese>=60 THEN '及格'
		ELSE '不及格'
	END AS `rank`
FROM student

MySQL流程控制函数汇总分析讲解

函数结构:

case
when  条件1  then  要显示的值1或语句1;
when  条件2  then  要显示的值2或语句2;
......
else  要显示的值n或语句n
end

注意:

  • case后面没有加条件
  • when后面是条件,结果是true或false;满足条件执行then,显示后面的值或语句
  • 同样的then后面如果是显示的值,不需要加分号;如果then后面加的是语句,就需要加分号。

到此这篇关于MySQL流程控制函数汇总分析讲解的文章就介绍到这了,更多相关MySQL流程控制内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL流程控制函数汇总分析讲解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL流程控制函数汇总分析讲解

目录1.IF函数2.IFNULL函数3.CASE函数4.多重IF在 mysql 中,流程控制函数是指可以控制存储过程(stored procedure)或函数(function)中执行流程的语句。以下是几个常用的流程控制函数:1.IF函数
2023-04-24

Golang汇编之控制流深入分析讲解

这篇文章主要介绍了Golang汇编之控制流,程序执行的流程主要有顺序、分支和循环几种执行流程,本节主要讨论如何将Go语言的控制流比较直观地转译为汇编程序,或者说如何以汇编思维来编写Go语言代码,感兴趣的同学可以参考下文
2023-05-20

MySql中流程控制函数/统计函数/分组查询用法解析

路漫漫其修远兮,吾将上下而求索,又到了周末,我继续带各位看官学习回顾Mysql知识。 上次说到了流程控制函数,那就从流程控制函数来继续学习吧!#五.流程控制函数 #1.if函数:if else的效果 IF(条件表达式,成立返回1,不成立返回
2022-05-21

MySQL基础教程6 —— 函数之控制流程函数

语法:CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condi
2022-05-20

MySql的回顾三:流程控制函数/统计函数/分组查询

路漫漫其修远兮,吾将上下而求索,又到了周末,我继续带各位看官学习回顾Mysql知识。上次说到了流程控制函数,那就从流程控制函数来继续学习吧!#五.流程控制函数#1.if函数:if else的效果IF(条件表达式,成立返回1,不成立返回2)#与Java三元运算相
MySql的回顾三:流程控制函数/统计函数/分组查询
2021-11-26

浅析JavaScript中的程序控制流和函数

本篇文章带大家吃透JavaScript中的程序控制流与函数,希望对大家有所帮助!
2022-11-22

MySQL存储过程的传参和流程控制示例讲解

这篇文章主要介绍了MySQL存储过程的传参和流程控制示例讲解, repeat和Loop区别是repeat有自己退出循环的语句until,Loop使用的是if判断语句,本文结合示例代码详细讲解,需要的朋友可以参考下
2023-02-10

MySQL流程控制while,repeat,loop循环实例分析

本文小编为大家详细介绍“MySQL流程控制while,repeat,loop循环实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL流程控制while,repeat,loop循环实例分析”文章能帮助大家解决疑惑,下面跟着小编的
2023-07-02

MySQL流程控制函数的使用方法有哪些

这篇文章主要介绍“MySQL流程控制函数的使用方法有哪些”,在日常操作中,相信很多人在MySQL流程控制函数的使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL流程控制函数的使用方法有哪些
2023-06-22

SpringCloudConfig连接git与数据库流程分析讲解

springcloudconfig是一个解决分布式系统的配置管理方案。它包含了client和server两个部分,server端提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client端通过接口获取数据、并依据此数据初始化自己的应用
2022-12-30

MySQL权限控制和用户与角色管理实例分析讲解

目录一、mysql用户登录二、用户管理三、权限控制四、角色管理一、MySQL用户登录lYoljYfqX一般在本机上我们的登录命令:mysql -u root -p+密码 这里介绍命令的作用:-u 指定用户名-h 指定主机地址(默认为l
2022-12-01

深度解析Python流程控制语句:有多少种分类?

Python作为一种高级编程语言,以其简洁明了和易读性强而受到广大开发者的青睐。在Python中,流程控制语句是编写程序时必不可少的重要部分。本文将带您深入了解Python中流程控制语句的种类及其具体代码示例,帮助您更好地掌握Python编
深度解析Python流程控制语句:有多少种分类?
2024-01-20

编程热搜

目录