無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 11 関数と演算子 :: 11.1 演算子 :: 11.1.4 論理演算子
« 11.1.3 比較関数と演算子

11.2 制御フロー関数 »
Section Navigation      [Toggle]
  • 11.1 演算子
  • 11.1.1 演算子の優先順位
  • 11.1.2 式評価でのタイプ変換
  • 11.1.3 比較関数と演算子
  • 11.1.4 論理演算子

11.1.4. 論理演算子

SQL では、すべての論理演算子は TRUE 、FALSE 、または NULL に評価されます ( UNKNOWN ) 。MySQL では、これらは 1 ( TRUE ) 、0 ( FALSE ) 、そして NULL として実行されます。サーバのあるものは TRUE にゼロ以外のすべての値を戻す場合があるものの、このほとんどは各種の SQL データベース サーバにとって通常のことです。

  • NOT, !

    NOT 演算。オペランドが 0 の場合は 1 に、オペランドがゼロ以外の場合は 0 に評価し、そして 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 を生成します。

  • AND, &&

    AND 演算。すべてオペランドがゼロ以外で非 NULL の場合は 1 に、ひとつ以上のオペランドが 0 の場合は 0 に評価し、それ以外は NULL を戻します。

    mysql> SELECT 1 && 1;
            -> 1
    mysql> SELECT 1 && 0;
            -> 0
    mysql> SELECT 1 && NULL;
            -> NULL
    mysql> SELECT 0 && NULL;
            -> 0
    mysql> SELECT NULL && 0;
            -> 0
    
  • OR, ||

    OR 演算。両方のオペランドが非 NULL である時、オペランドのどれかがゼロ以外である場合は結果は 1 、その他は 0 になります。ひとつが NULL オペランドであれば、他のオペランドがゼロ以外である場合の結果は 1 、その他は NULL になります。両方のオペランドが NULL であれば、結果は NULL になります。

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

    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) に等価です。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.