zoukankan      html  css  js  c++  java
  • MySQL函数

      MySQL 的逻辑表达式为真,返回1,为假,返回0;1代表true,0代表false;

      -- IF(expr1[bool类型], expr2, expr3)

        如果 expr1 的值为 true(不为 0 或 null),则返回 expr2,否则返回 expr3。类似于 Java 的三元运算符,oracle 的 NVL2 函数。 

    SELECT IF(0, 1, 2); SELECT IF(null, 1, 2); SELECT IF(1 / 0, 1, 2);
    --> 2; --> 2; --> 2;

     

      -- IFNULL(expr1[bool类型], expr2)

      如果 expr1 的值为不为 null,则返回 expr1,否则返回 expr2。IFNULL()的返回值是数字或字符串,具体情况取决于所用的语境。

    SELECT IFNULL(2 > 1, 5); SELECT IFNULL(0 > 1, 5); SELECT IFNULL(1 / 0, 5);
    --> 1; --> 0; --> 5.0000;
    SELECT IFNULL(0, 5); SELECT IFNULL(null, 5); SELECT IFNULL(1 / 0, '5');
    --> 0; --> 5;  --> 5;

     

     

      

      -- NULLIF(expr1[bool类型], expr2)

        如果 expr1 = expr2 则返回 null,否则返回 expr1。这和 CASE WHEN expr1 = expr2 THEN null ELSE expr1 END。

        此方法不能判断 null 值!

    SELECT NULLIF(10, null); SELECT NULLIF(1/0, 5); SELECT NULLIF(1/0, null);
    --> 10; --> null; --> null;

     

      

      -- ISNULL(expr[bool类型])

        如果 expr 的值为 null 则返回 1,否则返回 0。

    SELECT ISNULL(1); SELECT ISNULL(0); SELECT ISNULL(null); SELECT ISNULL(1/0);
    --> 0; --> 0; --> 1; --> 1;

     

     

    在 Select 之后通过处理查询出来的 NULL 值,IF()、IFNULL()、NULLIF()、ISNULL() 是不识别的!!!
    上述方法只能处理 Table 中的 null 值,即判断某条记录中的某字段是否为 null,无法对不存在的记录进行 null 判断 !!!
    解决:在 Select 外再套一层 Select 处理,将内层的 Select 结果作为虚拟表 

     

  • 相关阅读:
    PHP开发者的MySQL错误
    shell编程技术和实例《linux0.01内核分析与操作系统设计》
    函数问题1 init_EMUX
    sizeof问题
    C语言读书心得
    《深入浅出MFC》读书感受
    计算机专业学习多年的苦恼
    一个完整的字符设备驱动程序导读
    学习书籍选择
    鼠标滑动、文本添加(倒计时)
  • 原文地址:https://www.cnblogs.com/oumae/p/12311945.html
Copyright © 2011-2022 走看看