MySQL基础教程13——函数——流程控制函数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 如果value1为null则返回value2,不为null则返回value1,这里需要注意如果value1为""(空字符)不属于null返回空字符本身。

MySQL基础教程13——函数——流程控制函数


MySQL基础教程13——函数——流程控制函数


if(条件判断)


if(条件判断式,value1,value2);

mysql> select if(true,'ok','not');
+---------------------+
| if(true,'ok','not') |
+---------------------+
| ok                  |
+---------------------+
1 row in set
mysql> select if(false,'ok','not');
+----------------------+
| if(false,'ok','not') |
+----------------------+
| not                  |
+----------------------+
1 row in set

条件判断式为true返回value1,为false则返回value2。


ifnull(空判断)


select ifnull(value1,value2);

mysql> select ifnull('hello','isnull');
+--------------------------+
| ifnull('hello','isnull') |
+--------------------------+
| hello                    |
+--------------------------+
1 row in set
mysql> select ifnull(null
,'isnull');
+-----------------------+
| ifnull(null,'isnull') |
+-----------------------+
| isnull                |
+-----------------------+
1 row in set

如果value1为null则返回value2,不为null则返回value1,这里需要注意如果value1为""(空字符)不属于null返回空字符本身。


case ... when ... then ... end


case 字段 when 条件 then 语句 end;

+------+-----+
| name | age |
+------+-----+
| 张三 |  20 |
| 李四 |  38 |
| 王五 |  40 |
+------+-----+
mysql> select
    -> name,
    -> case age when 20 then '今年20岁' when 38 then '今年38岁' when 40 then '今年40岁' end
    -> from text;
+------+--------------------------------------------------------------------------------------+
| name | case age when 20 then '今年20岁' when 38 then '今年38岁' when 40 then '今年40岁' end |
+------+--------------------------------------------------------------------------------------+
| 张三 | 今年20岁                                                                             |
| 李四 | 今年38岁                                                                             |
| 王五 | 今年40岁                                                                             |
+------+--------------------------------------------------------------------------------------+
3 rows in set


case when ... then ... end


case when 字段条件判断 then 语句 else ... end;

+------+-----+
| name | scr |
+------+-----+
| 张三 |  50 |
| 李四 |  78 |
| 王五 |  98 |
+------+-----+
mysql> select
    -> name,
    -> case when scr < 60 then '不及格' when scr <=80 then '良' else '优' end
    -> from sc;
+------+------------------------------------------------------------------------+
| name | case when scr < 60 then '不及格' when scr <=80 then '良' else '优' end |
+------+------------------------------------------------------------------------+
| 张三 | 不及格                                                                 |
| 李四 | 良                                                                     |
| 王五 | 优                                                                     |
+------+------------------------------------------------------------------------+
3 rows in set


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
1
分享
相关文章
MySQL原理简介—1.SQL的执行流程
本文介绍了MySQL驱动、数据库连接池及SQL执行流程的关键组件和作用。主要内容包括:MySQL驱动用于建立Java系统与数据库的网络连接;数据库连接池提高多线程并发访问效率;MySQL中的连接池维护多个数据库连接并进行权限验证;网络连接由线程处理,监听请求并读取数据;SQL接口负责执行SQL语句;查询解析器将SQL语句解析为可执行逻辑;查询优化器选择最优查询路径;存储引擎接口负责实际的数据操作;执行器根据优化后的执行计划调用存储引擎接口完成SQL语句的执行。整个流程确保了高效、安全地处理SQL请求。
253 76
mysql 之order by工作流程
本文深入解析了MySQL中`ORDER BY`的排序机制,通过具体示例展示了排序过程及性能优化方法。文章首先分析了基于内存和磁盘的排序方式,包括`sort_buffer_size`的影响以及临时文件的使用场景。接着介绍了`rowid`排序算法,该算法通过减少参与排序的数据量来提升性能,并对比了其与传统排序的区别。此外,还探讨了随机查询`ORDER BY RAND()`的执行流程及其优化策略。最后提到了MySQL 5.6引入的优先队列排序算法,适用于仅需部分有序结果的场景。文章结合`optimizer_trace`工具详细说明了各配置参数对排序行为的影响,为优化查询提供了实用指导。
mysql 之order by工作流程
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
本文来自YashanDB官网,介绍将MySQL的FIELD函数改写到YashanDB的方法。MySQL中,FIELD函数用于自定义排序;而在YashanDB中,可使用DECODE或CASE语句实现类似功能。示例展示对表`t1`按指定顺序排序的过程,提供两种改写方式,结果均符合预期。
MySQL原理简介—2.InnoDB架构原理和执行流程
本文介绍了MySQL中更新语句的执行流程及其背后的机制,主要包括: 1. **更新语句的执行流程**:从SQL解析到执行器调用InnoDB存储引擎接口。 2. **Buffer Pool缓冲池**:缓存磁盘数据,减少磁盘I/O。 3. **Undo日志**:记录更新前的数据,支持事务回滚。 4. **Redo日志**:确保事务持久性,防止宕机导致的数据丢失。 5. **Binlog日志**:记录逻辑操作,用于数据恢复和主从复制。 6. **事务提交机制**:包括redo日志和binlog日志的刷盘策略,确保数据一致性。 7. **后台IO线程**:将内存中的脏数据异步刷入磁盘。
142 12
Mysql-常用函数及其用法总结
以上列举了MySQL中一些常用的函数及其用法。这些函数在日常的数据库操作中非常实用,能够简化数据查询和处理过程,提高开发效率。掌握这些函数的使用方法,可以更高效地处理和分析数据。
116 19
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
189 82

热门文章

最新文章