MySql存储过程之逻辑判断和条件控制

 更新时间:2015年10月18日 10:55:49   投稿:mrr  
本篇文章给大家介绍了mysql存储过程之逻辑判断、条件控制,涉及到的知识点有逻辑判断、条件控制方面的内容,对mysql存储过程逻辑判断和条件控制感兴趣的朋友可以参考下本文

具体详情请看下文小编给大家带来的知识点。

同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE

1、IF判断

IF判断的格式是这样的:

IF expression THEN commands 
  [ELSEIF expression THEN commands] 
  [ELSE commands] 
  END IF; 

这里expression是我们的判断表达式;ELSE IF 和ELSE都是可选的;command就是当条件为真(true为1,false为0)时执行的命令。比如我们设计一个存储过程用于返回商品的价格,这里价格通过传入的参数来判断是要带税收的价格还是没有带税收的价格。先看看表的数据:

然后下面是我们的存储过程:

存储过程的话有两个输入参数,第一个isTaxed表示是不是要带税价格,第二个是产品的名称;在存储过程里面定义了两个变量,finalPrice用来保存价格,而taxRate表示税率。这里代码比较简单,就是判断下如果是要加税,就把原来的价格乘上税率。下面是测试结果:

true的情况表示是带税的价格。好了这个是使用IF的一个例子,下面看看CASE;

2、CASE的使用

同编程里面的那个switch ....case.....类似,使用CASE同编程一样也是当判断比较多时便于阅读和维护,我们也来看下CASE的语法:

CASE case_expression 
  WHEN when_expression THEN commands 
  WHEN when_expression THEN commands 
  ... 
  ELSE commands 
END CASE; 

  a、这里可以看到CASE好比我们编程里面的那个switch,后面的case_expression就好比switch后面跟着的表达式;

  b、然后WHEN则类似编程里面的case,when_expression类似case后面跟着的值,commands则对应于相应的case下执行的命令;

 c、最后一个 ELSE 则类似于default,就是如果都没在上面那些WHEN里面的情况时执行的命令。


下面我们假设不同类型的商品对应的税收税率是不一样的情况来看个例子,这里假设甜点的税率是0.05,奶制品的是0.1,家具类的是0.2:,下面是存储过程:

上面增加了一个保存产品类型的一个变量proType,用来保存商品类型。然后使用CASE来进行判断来设置税率,下面是测试的部分:

可以看到沙发的价格是1250*1.2=1500,而蛋糕的价格是10*1.05 = 10.5


相关文章

  • MySQL命令行删除表中的一个字段

    MySQL命令行删除表中的一个字段

    本文介绍在MySQL数据库中,如何根据字段名来删除表中的一个字段,需要的朋友可以参考下
    2016-04-04
  • MySQL中DATEDIFF()函数用法及返回周、月、年

    MySQL中DATEDIFF()函数用法及返回周、月、年

    这篇文章主要给大家介绍了关于MySQL中DATEDIFF()函数用法及返回周、月、年的相关资料,datediff()函数返回两个日期之间的时间,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • MySQL 修改数据库名称的一个新奇方法

    MySQL 修改数据库名称的一个新奇方法

    这篇文章主要介绍了MySQL 修改数据库名称的一个新奇方法,MySQL 修改数据库名的一个变通方法,需要的朋友可以参考下
    2014-07-07
  • MySql 5.7.14 服务没有报告任何错误的解决方法(推荐)

    MySql 5.7.14 服务没有报告任何错误的解决方法(推荐)

    这篇文章主要介绍了MySql 5.7.14 服务没有报告任何错误解决方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • 简单了解mysql mycat 中间件

    简单了解mysql mycat 中间件

    这篇文章主要介绍了简单了解mysql mycat 中间件,一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库,需要的朋友可以参考下
    2019-06-06
  • MySQL优化之缓存优化

    MySQL优化之缓存优化

    在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣的朋友们有所帮助。
    2017-03-03
  • MySQL安装starting the server失败的2种解决办法(推荐!)

    MySQL安装starting the server失败的2种解决办法(推荐!)

    MySQL是一个非常强大的关系型数据库,但有些初学者在安装配置的时候,遇到种种的困难,下面这篇文章主要给大家介绍了关于MySQL安装starting the server失败的2种解决办法,需要的朋友可以参考下
    2023-04-04
  • MySQL的逻辑架构及工作全流程

    MySQL的逻辑架构及工作全流程

    这篇文章主要介绍了MySQL的逻辑架构及工作全流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • mysql 5.7.10 winx64安装配置方法图文教程(win10)

    mysql 5.7.10 winx64安装配置方法图文教程(win10)

    这篇文章主要为大家分享了mysql 5.7.10 winx64安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • MySQL取消了Query Cache的原因

    MySQL取消了Query Cache的原因

    这篇文章主要介绍了MySQL取消了Query Cache的原因,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-10-10

最新评论