MySQL的条件判断函数(十三)下

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: MySQL的条件判断函数(十三)

三. IFNull(v1,v2) 函数


如果v1 值为空,只是null, 才返回v2, 如果 v1不为空,就返回v1.


三.一 普通展示


  select ifnull(1,2),ifnull(0,2),ifnull(null,2);


20191129090441563.png


三.二 业务中使用情况


通常使用的时候,语意类似是这样的, 如果成绩员工考试了,就显示考试成绩,如果没有考试,就显示没有考试。 如果员工的奖金不为空,就显示奖金,如果为空,就显示未发奖金。 这样类似的情况。


这儿用 员工考试成绩做例子吧。 还用刚才的 user 表。


往 user 表里面 添加一列, score, 是double(5,2) 类型的。


  alter table user add score double(5,2);


20191129090446413.png


将 ‘两个蝴蝶飞’ 和’精小妹’ 的成绩分别改为 95 和98, 岳泽霖的成绩不动,即不修改。


  update user set score=95 where id=1;
  update user set score=98 where id=3;


20191129090531441.png


展示数据:


  select * from user;


20191129090536908.png


发现,岳泽霖的那条记录,展示的成绩为 ‘未考试’。


与 if() 函数一样,也是只判断一次。


四. case() 函数。


case 函数可以判断多次,是对 if(),ifnull() 函数的一种改进。 case() 函数有两种形式。


四.一 case() 函数的两种语句


第一种语句是:


  case 条件字段  when 值1 then 执行条件1 [when 值2 then 执行条件2] [else 执行条件n] end


将条件字段放置在最前面了。 末尾可以用 else 执行条件 n,来表示 没有情况符合时,执行这一种情况。


只是针对某一个字段进行比较。


其中,必须一定要写 end, 不能不写。


第二种语句是:


  case when 条件字段=值1 then 执行条件1 [when 条件字段=值2 then 执行条件2] [else 执行条件n] end


将条件字段放置在后面,每一次都与值进行判断比较。 其中,else 也表示 没有情况符合时,执行条件n情况。


可以执行不同的条件字段进行比较。


end 也是不能省略。


其实,这两种情况,某种意义上来说,相同的。 根据不同的业务需求采用不同的方式处理。


四.二 case() 函数


如: 如果 sex 为1,展示 男,为2,展示女,否则展示保密。


往user 表里面插入一条 不填写 sex的数据 。


  insert into user values(4,'精灵妹',null,null);


2019112909055398.png


case 第一种函数展示:


  select name,case sex when 1 then '男' when 2 then '女' else '保密' end as newSex from user;


20191129090603385.png


case 第二种函数展示:


  select name,case when sex=1 then '男' when sex=2 then '女' else '保密' end as newSex from user;


20191129090607784.png


谢谢 !!!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
本文主要介绍了MySQL存储函数及调用的方法,介绍了存储函数的示例,如何在MySQL中创建存储函数,以及介绍了MySQL中如何创建触发器,一目了然。在MySQL中,存储函数是预定义的SQL逻辑单元,可接收参数并返回单个值。创建存储函数使用`CREATE FUNCTION`语句,如示例中的`square_number`函数,它接收一个整数并返回其平方。调用存储函数就像调用普通函数一样,例如在`SELECT`语句中。存储函数可用于简化复杂逻辑,提高效率。此外,还可以通过`DROP FUNCTION`删除不再需要的函数。示例展示了不同场景下的存储函数应用,包括数字运算、字符串处理和逻辑判断。
80 2
|
15天前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
15天前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
7天前
|
关系型数据库 MySQL 开发者
Mysql COUNT() 函数详解
【6月更文挑战第19天】Mysql COUNT() 函数详解,包括 COUNT() 的用法及 COUNT() 带条件查询的操作
|
8天前
|
SQL 关系型数据库 MySQL
MySQL数据库基础第二篇(函数)
MySQL数据库基础第二篇(函数)
|
7天前
|
关系型数据库 MySQL
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
12 1
|
9天前
|
关系型数据库 MySQL 数据挖掘
|
13天前
|
存储 SQL 关系型数据库
MySQL存储过程和存储函数的使用
MySQL的存储过程和存储函数在功能和用法上有明显的区别。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,通过指定名称和参数(如果有)来调用执行,可以返回多个值或结果集,但不直接返回值。而存储函数则是一个有返回值的特殊存储过程,它返回一个值或表对象,可以直接嵌入SQL语句中使用,如SELECT语句中。两者都是为了提高SQL代码的重用性和性能,但使用场景和方式有所不同。
151 4
|
13天前
|
存储 安全 关系型数据库
MYSQL--存储函数
MYSQL--存储函数
|
15天前
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(3)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】