本文摘自PHP中文网,作者齐天大圣,侵删。
平时绝大部分时间可能都用不到Mysql的流程控制语句,但如果我们需要写存储过程的话,就会用到了。有了流程控制语句,mysql就能想其他编程语言一样写程序了。下面分别来介绍条件分支与循环体。条件分支
mysql关于条件分支有两种,IF与CASE。
IF条件
首先来看它的语法:
1 2 3 4 5 | IF CONDITION THEN 语句;
[ELSEIF CONDITION THEN 语句]
……
[ ELSE 语句]
END IF;
|
和php看起来有点像,但是在mysql里是没有“{}”,所以在mysql里使用END IF来结束条件分支。
下来我们来写一个最简单的条件分支,判断输入的值是否大于60,为真则输出pass。
1 2 3 4 5 | BEGIN
IF score >= 60 THEN
SELECT 'PASS' ;
END IF;
END
|
现在,我们来写一个多分支结构。当得分大于等于90时候,输出PERFETCT,大于等于80输出great;大于等于70则输出good;大于等于60输出common;否则输出bad;
1 2 3 4 5 6 7 8 | BEGIN
IF score >= 90 THEN SELECT 'PERFECT' ;
ELSEIF score >= 80 THEN SELECT 'GREAT' ;
ELSEIF score >=70 THEN SELECT 'GOOD' ;
ELSEIF score >= 60 THEN SELECT 'COMMON' ;
ELSE SELECT 'BAD' ;
END IF;
END
|
CASE条件分支
case条件分支有两种语法。第一种和php中的IF类似,另一种则和PHP中的switch-case类型。
1 2 3 4 5 6 7 | 语法1:
CASE
WHEN V1 THEN 语句
[ WHEN V2 THEN 语句]
……
[ ELSE 语句]
END CASE ;
|
1 2 3 4 5 6 7 | 语法2:
CASE VALUE
WHEN V1 THEN 语句
[ WHEN V2 THEN 语句]
……
[ ELSE 语句]
END CASE ;
|
下面来用语法2来完成和IF一样的功能。
1 2 3 4 5 6 7 8 9 10 | BEGIN
CASE FLOOR(score/10)
WHEN 10 THEN SELECT '优秀' ;
WHEN 9 THEN SELECT '优秀' ;
WHEN 8 THEN SELECT '良好' ;
WHEN 7 THEN SELECT '一般' ;
WHEN 6 THEN SELECT '及格' ;
ELSE SELECT '不及格' ;
END CASE ;
END
|
循环体
Mysql中也有几种不同的循环体结构,并且也有类似php中的break及continue的语句。下面,我们来看看这些循环体以及他们有什么样的区别。
WHILE
这里的while基本和php一样。他的语法如下:
1 2 3 | WHILE CONDITION DO
循环体
END WHILE;
|
下面,我们来写一个最简单的循环体,计算1+2+……+100的总和。
阅读剩余部分
相关阅读 >>
mysql 百万级分页优化(mysql千万级快速分页)
详解mysql从入门到放弃-安装
mysql中的日期字段有哪些
mysql怎么设置自增id的条件?
mysql怎么导入txt文件?
尝试搭建mysql master-slave主从复制的环境
mysql开启慢查询日志的方法详解
几种mysql中的联接查询操作方法总结
mysql字符串函数详解(推荐)
通过实例讲解mysql如何实现定时任务
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » Mysql流程控制之条件、循环结构