Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:

IF表达式

IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

select*,if(sva=1,"男","女")asssva fromtaname wheresva !=""

作为表达式的if也可以用CASE when来实现:

selectCASE sva WHEN 1THEN '男'ELSE '女'ENDasssva fromtaname wheresva !=''

在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。

例如:

SELECT CASE 1WHEN 1THEN 'one'WHEN 2THEN 'two'ELSE 'more'ENDastestCol

将输出one

IFNULL(expr1,expr2)

假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

mysql>SELECT IFNULL(1,0);->1mysql>SELECT IFNULL(NULL,10);->10mysql>SELECT IFNULL(1/0,10);->10mysql>SELECT IFNULL(1/0,'yes');->'yes'

IFNULL(expr1,expr2) 的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或 INTEGER。

IF ELSE 做为流程控制语句使用

if实现条件判断,满足不同条件执行不同的操作,这个我们只要学编程的都知道if的作用了,下面我们来看看mysql 存储过程中的if是如何使用的吧。

IF search_condition THEN

statement_list

[ELSEIF search_condition THEN]statement_list ...[ELSE

statement_list]ENDIF

与PHP中的IF语句类似,当IF中条件search_condition成立时,执行THEN后的statement_list语句,否则判断ELSEIF中的条件,成立则执行其后的statement_list语句,否则继续判断其他分支。当所有分支的条件均不成立时,执行ELSE分支。search_condition是一个条件表达式,可以由“=、、>=、!=”等条件运算符组成,并且可以使用AND、OR、NOT对多个表达式进行组合。

例如,建立一个存储过程,该存储过程通过学生学号(student_no)和课程编号(course_no)查询其成绩(grade),返回成绩和成绩的等级,成绩大于90分的为A级,小于90分大于等于80分的为B级,小于80分大于等于70分的为C级,依次到E级。那么,创建存储过程的代码如下:

create procedure dbname.proc_getGrade

(stu_no varchar(20),cour_no varchar(10))BEGINdeclare stu_grade float;selectgrade intostu_grade fromgrade wherestudent_no=stu_no andcourse_no=cour_no;ifstu_grade>=90thenselectstu_grade,'A';elseif stu_grade<90andstu_grade>=80thenselectstu_grade,'B';elseif stu_grade<80andstu_grade>=70thenselectstu_grade,'C';elseif stu_grade70 andstu_grade>=60thenselectstu_grade,'D';elseselectstu_grade,'E';endif;END

注意:IF作为一条语句,在END IF后需要加上分号“;”以表示语句结束,其他语句如CASE、LOOP等也是相同的。

mysql if语句后面执行两个语句_MySQL的if,case语句使用总结相关推荐

  1. mysql 值到99999后不增值了_MySQL数据库之更新语句精解(一)

    用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSE ...

  2. mysql 中 case语句吗_Mysql中的Case语句

    1.Case基本初识 case语句是mysql中的一个条件语句,可以在字段中使用case语句进行复杂的筛选以及构造新的字段.下面通过两个leetcode例子来详细解读case语句的功能: 1.1 Le ...

  3. C语言中for语句的执行步骤是什么,C语言中for语句的执行过程是怎样的

    C语言中for语句的执行过程是怎样的 发布时间:2020-07-27 13:48:19 来源:亿速云 阅读:122 作者:Leah 这期内容当中小编将会给大家带来有关C语言中for语句的执行过程是怎样 ...

  4. php case语句吗,【PHP公开课|关于PHP switch case语句,你知道怎么用吗,这个例子你一定要来看看】- 环球网校...

    [摘要]PHP作为一种超文本预处理器,已经成为了我们常用的网站编程语言,并且结合了C语言,Java等我们常见的编程语言,所以,有很多web开发领域的新人都看中了他的使用广泛性,有很多人都想了解php的 ...

  5. python语句的执行结果是_以下是 print( \nPython)语句运行结果的是().

    下n语周懿王励精图治,政通人和,有一段中兴时间,但是之后周朝走向衰弱.() 句运俭近仁出自( ). "靡不有初,行结鲜克有终."是司马光最早提出的. 下n语第一辆蒸汽公共汽车的发明 ...

  6. MySQL中删除数据的两种方法_MySQL删除数据库的两种方法

    本文为大家分享了两种MySQL删除数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 删除数据库使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MyS ...

  7. mysql取最接近的两个值_Mysql:获取一行中另一个字段的最高值和最...

    我有一个(MySQL)表,有两个日期/时间字段:开始和结束(每个类型的日期时间).我需要一个查询,它为我提供从开始的最低值和特定用户的最高值和定义的日期.我终于成功了以下查询: SELECT job. ...

  8. mysql查询的金额保留两位小数_mysql查询结果单位换算后保留两位小数

    数据库表中sale列的值为23456.789 format函数 说明:format(x,d)是mysql自带的格式化小数函数,format()函数会对小数部分进行四舍五入操作,整数部分从右向左每三位一 ...

  9. SQL中的条件语句case-when-then-else(就像C中的switch case语句)

    select u_id , u_name , u_score ,case when u_score >= 65.45 then '优秀'when u_score >=60 and u_sc ...

最新文章

  1. Bicolor软件 中 GATB
  2. oracle的用户自定义异常
  3. 简单记录一下使用python pyppeteer爬取努努书坊的爬虫
  4. mysql 5.1.53_mysql 5.1.53免安装版的优化配备和精简
  5. 错误:在非结构或联合中请求成员‘next’
  6. 大批量安装系统的解决方案(集锦)
  7. python编写登录接口_Python之编写登录接口
  8. 【学术杂谈】施一公:论文和科技实力是两回事,大家千万要分开
  9. 企业——Redis的高可用的搭建
  10. Java泛型原理、类型擦除
  11. 单片机固件烧录器 Firmware Writer Android APP
  12. 产品体系建模工具软件
  13. Unity素材、动画设计类常用插件
  14. 手机内存文件夹html,手机内存不够用?这6个文件夹要定时清理,至少能省下2个G...
  15. oracle触发器update本表数据
  16. boost::asio 学习
  17. NEFU OJ 1266-快乐的雨季-线段树【题解】
  18. Photoshop(CC2020)未完
  19. CSP-M4补题 B_ZJM要抵御宇宙射线
  20. Acrel-3000在青岛中冶圣乔维斯南区智能住宅小区的应用

热门文章

  1. -bash: wget: 未找到命令_18个堪称神器的命令行工具,高效运维必备
  2. logstash-input-redis源码解析
  3. HDFS常用Shell命令
  4. SSH软件包:Sftp,scp和ssh-agent
  5. 初始化bean(二)—— 缓存部分
  6. Android 布局练习
  7. Mac 获取 Brew
  8. ssh-scan处理手记
  9. 使用网络进行项目托管
  10. 无法显示验证码去掉html,如何去除验证码-模版风格-易通免费企业网站系统 - Powered by CmsEasy...