• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • 逻辑运算符

    逻辑运算符

    名称描述
    AND&&逻辑与
    NOT!取反值
    OR||逻辑或
    XOR逻辑异或

    在SQL中,所有逻辑运算符来评估TRUEFALSENULLUNKNOWN)。在MySQL中,这些实现为1(TRUE),0(FALSE)和NULL。尽管其中有些服务器可能返回的任何非零值,但大多数情况对于不同的SQL数据库服务器来说是通用的TRUE

    MySQL将所有非零,非NULL值都评估为TRUE。例如,以下语句均评估为TRUE

    mysql> SELECT 10 IS TRUE;
    -> 1
    mysql> SELECT -10 IS TRUE;
    -> 1
    mysql> SELECT 'string' IS NOT NULL;
    -> 1
    
    • NOT!

      逻辑非。计算1操作数是否为00如果操作数为非零,则NOT NULL返回NULL

      mysql> SELECT NOT 10;
      -> 0
      mysql> SELECT NOT 0;
      -> 1
      mysql> SELECT NOT NULL;
      -> NULL
      mysql> SELECT ! (1+1);
      -> 0
      mysql> SELECT ! 1+1;
      -> 1
      

      最后一个示例的产生1是因为表达式的计算方式与相同(!1)+1

      !,运营商是一个非标准MySQL扩展。从MySQL 8.0.17开始,不推荐使用此运算符,并且在将来的MySQL版本中将删除对此运算符的支持。应将应用程序调整为使用标准SQL NOT运算符。

    • AND&&

      逻辑与。评估1是否所有操作数都为非零而不是非NULL0如果一个或多个操作数为0NULL则返回,否则返回。

      mysql> SELECT 1 AND 1;
      -> 1
      mysql> SELECT 1 AND 0;
      -> 0
      mysql> SELECT 1 AND NULL;
      -> NULL
      mysql> SELECT 0 AND NULL;
      -> 0
      mysql> SELECT NULL AND 0;
      -> 0
      

      &&,运营商是一个非标准MySQL扩展。从MySQL 8.0.17开始,不推荐使用此运算符,并且在将来的MySQL版本中将删除对此运算符的支持。应将应用程序调整为使用标准SQL AND运算符。

    • OR||

      逻辑或。当两个操作数均为非-时NULL,结果为1是否有任何操作数非零0。对于一个NULL操作数,结果是1另一个操作数是否非零NULL。如果两个操作数都为NULL,则结果为NULL

      mysql> SELECT 1 OR 1;
      -> 1
      mysql> SELECT 1 OR 0;
      -> 1
      mysql> SELECT 0 OR 0;
      -> 0
      mysql> SELECT 0 OR NULL;
      -> NULL
      mysql> SELECT 1 OR NULL;
      -> 1
      
      注意

      如果PIPES_AS_CONCAT启用了SQL模式,则||表示SQL标准的字符串连接运算符(如CONCAT())。

      ||,运营商是一个非标准MySQL扩展。从MySQL 8.0.17开始,不推荐使用此运算符,并且在将来的MySQL版本中将删除对此运算符的支持。应将应用程序调整为使用标准SQL OR运算符。例外:如果PIPES_AS_CONCAT启用,则弃用不适用,因为在这种情况下,||表示字符串连接。

    • XOR

      逻辑异或。NULL如果任一操作数为,则返回NULL。对于非NULL操作数,计算1出奇数个操作数是否为非零,否则0返回。

      mysql> SELECT 1 XOR 1;
      -> 0
      mysql> SELECT 1 XOR 0;
      -> 1
      mysql> SELECT 1 XOR NULL;
      -> NULL
      mysql> SELECT 1 XOR 1 XOR 1;
      -> 1
      

      a XOR b在数学上等于(a AND(NOT b))OR((NOT a)and b)