• 备战2022春招或暑期实习,本专栏会持续输出MySQL系列文章,祝大家每天进步亿点点!文末私信作者,我们一起去大厂
  • 本篇总结的是 《MySQL之流程函数》,后续会每日更新~
  • 关于《Redis入门到精通》、《并发编程》、《Java全面入门》、《鸿蒙开发》等知识点可以参考我的往期博客
  • 相信自己,越活越坚强,活着就该逢山开路,遇水架桥!生活,你给我压力,我还你奇迹!

目录

一、简介

二、流程函数


一、简介

流程函数在MySQL中使用的不是非常频繁,但是涉及到条件筛选等特殊场景时,使用流程函数能带来非常大的便捷,提高语句的效率。

二、流程函数

常见的流程函数有四个,如下表所示:

函数 功能
if(value, t, f) 如果value为true,则返回t,否则返回f
ifnull(value1, value2) 如果value1不为null,返回value1,否则返回value2
case when [val1] then [res1] … else [default] end 如果val1为true,则返回res1,否则返回default默认值
case [expr] when [val1] then [res1] … else [default] end 如果expr的值等于val1,则返回res1,否则返回default默认值

首先来看一下这四个流程函数的基本使用方法:
A. if

select if(true, 'Ok', 'Error');

B. ifnull

select ifnull('', 'Default');

此处需要注意,''空串并不等于null,因此返回就是''

select ifnull(null, 'Default');

这种情况才是null,返回Default默认值

为了方便测试,需先创建一张测试表,表结构和数据如下所示:

create table tb_employ
(id           int         not null comment '员工ID',name         varchar(10) null comment '员工姓名',work_address varchar(20) null comment '工作地点',entry_date   date        null comment '入职日期',constraint tb_employ_pkprimary key (id)
)comment '职员表';insert into tb_employ (id, name, work_address, entry_date)
values (1, '李子捌', '深圳', '2019-07-01'),(2, '李子柒', '成都', '2015-06-21'),(3, '梁某人', '北京', '2022-01-22');

C. case when [val1] then [res1] … else [default] end
需求:查询职员表中,各职员所处城市级别,北京深圳为一线城市,其余为二线城市

select name,(case when '北京' then '一线城市' when '深圳' then '一线城市' else '二线城市' end) as '城市级别'
from tb_employ;

为了方便测试,需先创建一张测试表,表结构和数据如下所示:

-- auto-generated definition
create table tb_score
(id      int                              not null comment '用户ID' primary key,name    varchar(15) default '0' null comment '姓名',chinese int         default 0   null comment '语文',math    int         default 0   null comment '数学',english int         default 0   null comment '英语'
) comment '成绩表';insert into tb_score (id, name, chinese, math, english)
values (1, '李子捌', 88, 100, 79),(2, '梁某人', 95, 94, 100),(3, '李子柒', 92, 88, 91);

D. case [expr] when [val1] then [res1] … else [default] end
需求:成绩大于等于90分为优秀,大于等于80为良好,其余为及格

select name,(case when chinese >= 90 then '优秀' when chinese >= 80 then '良好' else '及格' end) as '语文',(case when math >= 90 then '优秀' when math >= 80 then '良好' else '及格' end)       as '数学',(case when english >= 90 then '优秀' when english >= 80 then '良好' else '及格' end) as '英语'
from tb_score;

MySQL之流程函数相关推荐

  1. MySQL 学习笔记(3)— 字符串函数、数值函数、日期时间函数、流程函数、聚集函数以及分组数据

    1. 字符串函数 MySQL 的常用函数包括字符串函数.数值函数.日期时间函数.流程函数等. SELECT ascii("abc"),char(97),concat("h ...

  2. MySQL 之 单行函数(数学函数、字符串函数、日期时间函数、流程函数 )

    MySQL 之 单行函数 1.数学函数 2.字符串函数 3.日期时间函数 4.流程函数 5.其他函数

  3. MYSQL 数据库基础(三 流程函数的学习,多行函数相当于统计计算等等、group by的使用、goup by衍生出的having、排序关键字order by、升序ASC、降序DESC、模糊查询等)

    流程函数 类似与java中的判断情况 的学习 实际应用: -- 满足条件执行 第一个逗号后面的 否则执行第二个逗号 SELECT ename,sal,IF(sal<2500,'低于2500',' ...

  4. mysql ceill_MYSQL常用函数

    1.字符串函数 函数 作用 CONCAT(S1,S2-Sn) 将S1,S2,Sn合并为一个字符串 INSERT(str,x,y,instr) 将字符串str从位置x开始y个字符长的子串替换为instr ...

  5. MySQL 笔记6 -- 函数与事务

    MySQL 笔记6 – 函数与事务 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.内置函数 ...

  6. concat函数_三、P57-61 MySQL中常用函数

    本部分主要讲解MySQL数据库中常用函数的使用. P57 SQL中的函数类型:字符串函数.数值函数.日期和时间函数.流程函数.其他常用函数: P58 第1部分:字符串函数 1.concat函数 con ...

  7. MySQL 基础 ———— 流程控制结构

    引言 MySQL 中的流程控制作为基础知识的最后一块拼图,显得并不是特别重要,而且,在实际生产开发中,也往往不需要通过它来进行程序的控制,那么为什么还要学习它呢?我认为有以下几点: 1.知识的完整性: ...

  8. mysql注入内置函数_PHP面试之mysql内置函数,xss漏洞,sql注入

    面试被问到: 1. MySql有哪些常用聚合函数: count().sum().max().min().avg().group_concat() mysql还有常用的函数: (1)数值函数: Abs( ...

  9. mysql存储过程详解 mysql存储过程和函数

    第20章:存储程序和函数 目录 20.1. 存储程序和授权表 20.2. 存储程序的语法 20.2.1. CREATE PROCEDURE和CREATE FUNCTION 20.2.2. ALTER ...

最新文章

  1. 再读simpledb 之 元数据管理(3)
  2. Hadoop集群管理与NFS网关
  3. Unity-Find-Script-References 查找脚本的引用
  4. 【广州/深圳 活动】 MVP社区巡讲
  5. 路由器上的usb接口有什么用_工业主板上有多少种USB接口,红色的USB接口代表什么...
  6. windows安装dcm4chee 出错 check file system group LOSSY_STORAGE for deletion
  7. 初识MySQL——人生若如初相逢
  8. 【推荐算法】知识驱动的智能化推荐算法(附交流视频和PPT下载链接)
  9. html中url路径是什么意思,url是什么意思?
  10. 如何在Python中串联两个列表?
  11. C#SuperSocket服务器的简易实现
  12. 科学网—语音识别技术发展史
  13. 一种将排序值换算为得分值的方法
  14. java关于map用来筛选的用法
  15. jquery easyui 输入框 禁止输入负数 设置属性data-options=min:0,required:true
  16. 用 Python 给自己找个合适的妹子
  17. 数据的更新(update的用法)笔记
  18. linux学习之用户管理篇
  19. OpenGL 4.0 学习3.2--各种颜色的RGB值
  20. Unity Shader 卡通渲染 (三):仿塞尔达荒野之息 Shader(顶点色控制细节)

热门文章

  1. AcWing 715. 余数
  2. 服务器项目技术方案,直播项目技术实现方案(工作室)
  3. 【Linux学习】如何编写Shell脚本调用企业微信api来发消息给企业微信成员?
  4. 适合中小企业的ERP管理软件如何选择?
  5. App地推渠道归属:解决地推中存在的难题
  6. apache虚拟服务器搭建,httpd搭建虚拟主机与Apache网站基础服务
  7. 黑马程序员—C#多线程
  8. 【数据库查询表结构】
  9. Ethyl 2-azidoacetate,637-81-0,叠氮乙酸乙酯MDL: MFCD00190177的分子量是129.117
  10. Redis缓存一致性问题解决方案