MySQL数据库(29):流程结构 if while

举报
彭世瑜 发表于 2022/06/14 22:15:28 2022/06/14
1.1k+ 0 0
【摘要】 流程结构 if while if分支 两种基本用法 1、用在select查询中 基本语法 if(条件, 结果为真, 结果为假); 1 mysql> select * from my_st...

流程结构 if while

if分支

两种基本用法

1、用在select查询中

基本语法

if(条件, 结果为真, 结果为假);

  
 
mysql> select * from my_student;
+----+-----------+----------+------+--------+
| id | name      | class_id | age  | gender |
+----+-----------+----------+------+--------+
|  1 | 刘备      |        1 |   18 |      2 |
|  2 | 李四      |        1 |   19 |      1 |
|  3 | 王五      |     NULL |   20 |      2 |
|  4 | 张飞      |     NULL |   21 |      1 |
|  5 | 关羽      |     NULL |   22 |      2 |
|  6 | 曹操      |        1 |   20 |   NULL |
| 10 | 司马懿    |        6 |   26 |      1 |
+----+-----------+----------+------+--------+

mysql> select *, if(age > 20, '符合', '不符合') as result from my_student;
+----+-----------+----------+------+--------+-----------+
| id | name      | class_id | age  | gender | result    |
+----+-----------+----------+------+--------+-----------+
|  1 | 刘备      |        1 |   18 |      2 | 不符合    |
|  2 | 李四      |        1 |   19 |      1 | 不符合    |
|  3 | 王五      |     NULL |   20 |      2 | 不符合    |
|  4 | 张飞      |     NULL |   21 |      1 | 符合      |
|  5 | 关羽      |     NULL |   22 |      2 | 符合      |
|  6 | 曹操      |        1 |   20 |   NULL | 不符合    |
| 10 | 司马懿    |        6 |   26 |      1 | 符合      |
+----+-----------+----------+------+--------+-----------+
7 rows in set (0.00 sec)

  
 

2、用在复杂语句块中(函数、存储过程、触发器)

基本语法

if 条件表达式 then
    满足条件要执行的语句;
end if;

  
 

3、复合语法

基本语法

if 条件表达式 then
    满足条件要执行的语句;
else
    不满足条件要执行的语句;
end if;

-- 如果有其他分支,嵌套使用
if 条件表达式 then
    满足条件要执行的语句;
else
    不满足条件要执行的语句;
    if 条件表达式 then
        满足条件要执行的语句;
    else
        不满足条件要执行的语句;
    end if;
end if;

  
 

while循环

基本语法

while 条件 do
    要循环执行的代码
end while;

  
 

结构标识符: 为结构命名

基本语法

标识名字: while 条件 do
    要循环执行的代码
end while [标识名字];

  
 

mysql中没有continue 和break

  • iterate 迭代 以下代码不执行,重新开始循环,相当于continue
  • leave 离开 终止循环,相当于break
标识名字: while 条件 do
    if 条件判断 then
        循环控制
        iterate / leave 标识名字;
    end if;

    循环体

end while [标识名字];

  
 

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/125268602

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。