zoukankan      html  css  js  c++  java
  • MySQL教程54-MySQL逻辑运算符

    逻辑运算符又称为布尔运算符,用来确定表达式的真和假。MySQL中支持的逻辑运算符如下表所示。

    MySQL 中的逻辑运算符
    运算符作用
    NOT 或者 ! 逻辑非
    AND 或者 && 逻辑与
    OR 和 || 逻辑或
    XOR 逻辑异或

    下面分别讨论 MySQL 逻辑运算符的使用方法。

    NOT!都是逻辑非运算符,返回和操作数相反的结果,具体语法规则为:

    • 当操作数为 0(假)时,返回值为 1;
    • 当操作数为非零值时,返回值为 0;
    • 当操作数为 NULL 时,返回值为 NULL。

    【实例1】分别使用非运算符 NOT 或者 ! 进行逻辑判断,运行结果如下:

    由运行结果可以看出,NOT 1+1! 1+1的返回值不同,这是因为 NOT 与 ! 的优先级不同:

    • NOT 的优先级低于 +,因此NOT 1+1相当于NOT(1+1),先计算1+1,然后再进行 NOT 运算,由于操作数不为 0,因此NOT 1+1的结果是 0;
    • 相反,! 的优先级别要高于 +,因此! 1+1相当于(!1)+1,先计算!1结果为 0,再加 1,最后结果为 1。

    注意: 在使用运算符运算时,一定要注意运算符的优先级,如果不能确定计算顺序,最好使用括号,以保证运算结果的正确。

    逻辑与运算符(AND 或者 &&)

    AND 和 && 都是逻辑与运算符,具体语法规则为:

    • 当所有操作数都为非零值并且不为 NULL 时,返回值为 1;
    • 当一个或多个操作数为 0 时,返回值为 0;
    • 操作数中有任何一个为 NULL 时,返回值为 NULL。

    【实例2】分别使用与运算符 AND 和 && 进行逻辑判断,运行结果如下:

    由结果可以看到,AND 和 && 的作用相同。1 AND-1中没有 0 或者 NULL,所以返回值为 1;1 AND 0中有操作数 0,所以返回值为 0;1 AND NULL虽然有 NULL,所以返回值为 NULL。

    注意:AND 运算符可以有多个操作数,但要注意多个操作数运算时,AND 两边一定要使用空格隔开,不然会影响结果的正确性。

    逻辑或运算符(OR 或者 ||)

    • 当两个操作数都为非 NULL 值时,如果有任意一个操作数为非零值,则返回值为 1,否则结果为 0;
    • 当有一个操作数为 NULL 时,如果另一个操作数为非零值,则返回值为 1,否则结果为NULL;
    • 假如两个操作数均为 NULL 时,则返回值为 NULL。

    【实例3】分别使用或运算符 OR 和 || 进行逻辑判断,运行结果如下:

    由结果可以看到,OR 和 || 的作用相同。下面是对各个结果的解析:

    • 1 OR -1 OR 0含有 0,但同时包含有非 0 的值 1 和 -1,所以返回结果为 1;
    • 1 OR 2中没有操作数 0,所以返回结果为 1;
    • 1 OR NULL虽然有 NULL,但是有操作数 1,所以返回结果为 1;
    • 0 OR NULL中没有非 0 值,并且有 NULL,所以返回值为 NULL;
    • NULL OR NULL中只有NULL,所以返回值为NULL。

    异或运算(XOR 运算符)

    XOR 表示逻辑异或,具体语法规则为:

    • 当任意一个操作数为 NULL 时,返回值为 NULL;
    • 对于非 NULL 的操作数,如果两个操作数都是非 0 值或者都是 0 值,则返回值为 0;
    • 如果一个为0值,另一个为非 0 值,返回值为 1。

    【实例4】使用异或运算符 XOR 进行逻辑判断,SQL语句如下:

    由结果可以看到:

    • 1 XOR 10 XOR 0中运算符两边的操作数都为非零值,或者都是零值,因此返回 0;
    • 1 XOR 0中两边的操作数,一个为 0 值,另一个为非 0 值,所以返回值为 1;
    • 1 XOR NULL中有一个操作数为 NULL,所以返回值为 NULL;
    • 1 XOR 1 XOR 1中有多个操作数,运算符相同,因此运算顺序从左到右依次计算,1 XOR 1的结果为 0,再与 1 进行异或运算,所以返回值为 1。

    提示:a XOR b 的计算等同于 (a AND (NOT b))或者 ((NOT a) AND b)。

  • 相关阅读:
    原创的java数据访问框架
    在ASP.NET中使用Session常见问题集锦
    Infragistics中WebGrid的MultiColumn Headers设计
    常用asp.net代码
    如何实现函数IF的嵌套超过七层?
    Microsoft® Visual Studio® 2005 Team Suite Service Pack 1
    ASP.NET中常用的文件上传下载方法
    ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站
    office2007TW
    http://www.ydowns.com/download/53279.rar
  • 原文地址:https://www.cnblogs.com/no-celery/p/13527462.html
Copyright © 2011-2022 走看看