• 技术文章 >数据库 >mysql教程

    mysql存储过程中的if怎么使用

    长期闲置长期闲置2022-01-12 10:49:28原创85

    在mysql中,if语句用于根据表达式的某个条件或值结果来执行一组SQL语句,语法为“IF expression THEN statements;END IF;”;当表达式计算结果为TRUE时,将执行statements语句。

    本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

    mysql存储过程中的if怎么使用

    MySQL IF语句允许您根据表达式的某个条件或值结果来执行一组SQL语句。 要在MySQL中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。表达式可以返回TRUE,FALSE或NULL,这三个值之一。

    MySQL IF语句语法

    下面说明了IF语句的语法:

    IF expression THEN 
       statements;
    END IF;

    如果表达式(expression)计算结果为TRUE,那么将执行statements语句,否则控制流将传递到END IF之后的下一个语句。

    以下流程图演示了IF语句的执行过程:

    08.png

    MySQL IF ELSE语句

    如果表达式计算结果为FALSE时执行语句,请使用IF ELSE语句,如下所示:

    IF expression THEN
       statements;
    ELSE
       else-statements;
    END IF;

    以下流程图说明了IF ELSE语句的执行过程:

    09.png

    MySQL IF ELSEIF ELSE语句

    如果要基于多个表达式有条件地执行语句,则使用IF ELSEIF ELSE语句如下:

    IF expression THEN
       statements;
    ELSEIF elseif-expression THEN
       elseif-statements;
    ...
    ELSE
       else-statements;
    END IF;

    如果表达式(expression)求值为TRUE,则IF分支中的语句(statements)将执行;如果表达式求值为FALSE,则如果elseif_expression的计算结果为TRUE,MySQL将执行elseif-expression,否则执行ELSE分支中的else-statements语句。具体流程如下

    10.png

    MySQL IF语句示例

    以下示例说明如何使用IF ESLEIF ELSE语句,GetCustomerLevel()存储过程接受客户编号和客户级别的两个参数。

    首先,它从customers表中获得信用额度

    然后,根据信用额度,它决定客户级别:PLATINUM , GOLD 和 SILVER 。

    参数p_customerlevel存储客户的级别,并由调用程序使用。

    USE yiibaidb;
    DELIMITER $$
    CREATE PROCEDURE GetCustomerLevel(
        in  p_customerNumber int(11), 
        out p_customerLevel  varchar(10))
    BEGIN
        DECLARE creditlim double;
        SELECT creditlimit INTO creditlim
        FROM customers
        WHERE customerNumber = p_customerNumber;
        IF creditlim > 50000 THEN
     SET p_customerLevel = 'PLATINUM';
        ELSEIF (creditlim <= 50000 AND creditlim >= 10000) THEN
            SET p_customerLevel = 'GOLD';
        ELSEIF creditlim < 10000 THEN
            SET p_customerLevel = 'SILVER';
        END IF;
    END$$

    以下流程图演示了确定客户级别的逻辑

    11.png

    推荐学习:mysql视频教程

    以上就是mysql存储过程中的if怎么使用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql
    上一篇:mysql存储过程怎样变量赋值 下一篇:怎样修改mysql时间

    相关文章推荐

    • mysql要如何删数据库• 一起聊聊MySQL数据查询太多会OOM吗• 聊聊MySQL中的聚合函数,实践掌握分页查询!• MySQL中如何查询字段注释?盘点和对比下5 种方法!• mysql怎样查询区分大小写

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网