关键词

MySQL控制流函数(-if ,elseif,else,case…when)

MySQL控制流函数主要是用于控制程序的执行流程,使用这些函数可以根据不同的条件执行不同的代码块。常用的控制流函数有if、elseif、else、case和when,下面我来逐个介绍。

if函数

if函数语法如下:

IF(expression, true_value, false_value)

其中,expression为一个布尔表达式,true_value和false_value是两个表达式,当布尔表达式expression为true时,if函数返回true_value,否则返回false_value。

例如:

SELECT IF(1>2, 'yes', 'no');   // 返回no
SELECT IF(1<2, 'yes', 'no');   // 返回yes

elseif、else函数

elseif和else函数通常与if函数一起使用,用于确定不同的运行的程序流程。语法如下:

IF(expression1, value1, IF(expression2, value2, ... IF(expressionN, valueN-1, valueN)))

其中,expression1、expression2...expressionN均为布尔型表达式,而value1、value2...valueN为各自表达式成立时的返回值。

例如,以下代码块将判断三个数字的大小关系:

SELECT IF(3>5, '3>5', IF(3=5, '3=5', '3<5'));   // 返回3<5

Case...when函数

case-when函数语法如下:

CASE expression
    WHEN value1 THEN result1
    WHEN valueN THEN resultN
    ELSE default_result
END

其中,expression为某个表达式或字段值,value1、value2、valueN为表达式的各个匹配值,result1、result2、resultN为匹配值对应的结果,而default_result为表达式不匹配任何值时的默认结果。

例如,以下代码块将判断score字段对应的等级关系:

SELECT score ,CASE 
                   WHEN score > 90 THEN 'A'
                   WHEN score > 80 THEN 'B'
                   WHEN score > 70 THEN 'C'
                   WHEN score > 60 THEN 'D'
                   ELSE 'E'
               END as '等级'
FROM grades;

以上就是MySQL控制流函数的完整攻略了,学会这些函数将有助于我们编写更为高效灵活的程序。

本文链接:http://task.lmcjl.com/news/18290.html

展开阅读全文