zoukankan      html  css  js  c++  java
  • Mariadb MySQL逻辑条件判断相关语句、函数使用举例介绍

    MySQL逻辑条件判断相关语句、函数使用举例介绍

    By:授客 QQ:1033553122

     

    1、  IFNULL函数介绍

    IFNULL(expr1, expr2)

    说明:假如expr1 不为NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为 expr2IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

    注意:默认结果值为两个表达式中更加通用的一个,顺序为STRING REAL INTEGER

     

    例子:

    SELECT IFNULL(1, 0); # 结果为1

    SELECT IFNULL(NULL, 10); # 结果为 10

    SELECT IFNULL(1/0, 10); # 结果为10.000

     

    SELECT IFNULL('string', 1.5); # 结果为 string

    SELECT IFNULL('string', 5); # 结果为 string

    SELECT IFNULL(1.5, 5); # 结果为 1.5

     

    2、  IF函数

    IF(expr1, expr2, expr3)          

    如果expr1TRUE(expr1<>0expr1<>NULL),那么IF()返回expr2,否则它返回expr3

    例子:

    SELECT IF(1>2, 2, 3); # 结果返回 3     

    SELECT IF(1<2, 'yes', 'no'); # 结果返回yes  

    SELECT IF(NULL, 1, 3); # 结果返回3   

     

    SELECT IF(0.1,1,0); # 结果返回1

    SELECT IF(0.1<>0,1,0);  # 结果返回1

    注意:IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)

     

    3、  CASE WHEH的使用

    CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

    说明:condition条件为真,则返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。

    例子:

    SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;  # 结果返回 true

     

    SELECT CASE WHEN 5 > 9 THEN "5 > 9:fasle" WHEN 5 > 6 THEN "5 > 6:fasle" WHEN 5 > 4 THEN "5 > 4:true" ELSE "false" END;  # 结果返回 5 > 4:true

     

    4、  IFELSE的使用

    DELIMITER //

    CREATE PROCEDURE sp_test(

    flag INT

    ) 

    BEGIN

    DECLARE num INT DEFAULT 0;

         

    SET num = 1;

    IF flag = 3

    THEN 

        SET num = 2;

        SELECT num;

    ELSE 

        SET num = 3; 

        SELECT num;

    END IF; 

       

    END;

    //

    DELIMITER ;

     

    CALL sp_test(5); # 结果输出值: 3

     

    类似的有IFENDIF;

     

    5、  IFELSEIFELSE的使用

    DELIMITER //

    CREATE PROCEDURE sp_test(

    flag INT

    ) 

    BEGIN

    DECLARE num INT DEFAULT 0;

         

    SET num = 1;

    IF flag = 3

    THEN 

        SET num = 2;

        SELECT num;

    ELSEIF flag = 0

    THEN 

        SET num = 3;

        SELECT num;

    ELSE 

        SET num = 4; 

        SELECT num;

    END IF; 

       

    END;

    //

    DELIMITER ;

     

     

    注:前后记得用DELIMITER // ……// DELIMITER; 不然直接运行以上创建存储过程的语句可能会报错,如下:

    Query: SET num = 1

     

    Error Code: 1193

    Unknown system variable 'num'

     

     

     

  • 相关阅读:
    定义enum,我用struct { enum Type{};};
    喧嚣中的iPad与iPhone
    [Architecture]zheye.org(者也)
    Driveworks Online Configurator
    [Buzz.Today]2012.05.02
    C++中的默认构造函数
    安装Ubuntu,尝尝鲜
    在cs文件中控制控件的 css样式。
    如何生成静态页面的五种方案
    在服务器上 .netFramework2.0 环境下,如何能在不改变服务器设置下,让站点能够运行 AJAX 程序
  • 原文地址:https://www.cnblogs.com/shouke/p/10157840.html
Copyright © 2011-2022 走看看