Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


このページは機械翻訳したものです。

12.4.3 論理演算子

表 12.5 「論理演算子」

名前説明
AND,&& 論理 AND
NOT,! 値を否定します
OR,|| 論理 OR
XOR 論理 XOR

SQL では、すべての論理演算子はTRUEFALSE、またはNULL (UNKNOWN) に評価されます。 MySQL では、これらは 1 (TRUE)、0 (FALSE)、およびNULL として実装されます。 この大部分は、さまざまな SQL データベースサーバーに共通のものです。ただし、一部のサーバーはTRUE にゼロ以外の任意の値を返す場合があります。

MySQL では、ゼロ以外の任意の非NULL 値がTRUE に評価されます。 たとえば、次のステートメントはすべてTRUE に評価されます。

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

    NOT 演算。 オペランドが0 の場合は1 に、オペランドがゼロ以外の場合は0 にそれぞれ評価され、NOT NULL の場合はNULL が返されます。

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

    最後の例では、式が(!1)+1 と同様に評価されるため、1 が生成されています。

    !、演算子は非標準の MySQL 拡張機能です。 MySQL 8.0.17 では、この演算子は非推奨です。将来のバージョンの MySQL で削除される予定です。 アプリケーションは、標準の SQLNOT 演算子を使用するように調整する必要があります。

  • AND,&&

    論理 AND すべてのオペランドがゼロ以外で非NULL の場合は1 に、1 つ以上のオペランドが0 の場合は0 に評価され、それ以外の場合はNULL が返されます。

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

    &&、演算子は非標準の MySQL 拡張機能です。 MySQL 8.0.17 では、この演算子は非推奨です。将来のバージョンの MySQL ではサポートされなくなる予定です。 アプリケーションは、標準の SQLAND 演算子を使用するように調整する必要があります。

  • OR,||

    論理 OR。 両方のオペランドが非NULL であれば、オペランドのいずれかがゼロ以外である場合の結果は1、それ以外の場合は0 になります。NULL オペランドが 1 つあれば、ほかのオペランドがゼロ以外である場合の結果は1、それ以外の場合はNULL になります。 両方のオペランドがNULL であれば、結果はNULL になります。

    mysql> SELECT 1 OR 1;        -> 1mysql> SELECT 1 OR 0;        -> 1mysql> SELECT 0 OR 0;        -> 0mysql> SELECT 0 OR NULL;        -> NULLmysql> SELECT 1 OR NULL;        -> 1
    注記

    PIPES_AS_CONCAT SQL モードが有効な場合、||は SQL 標準の文字列連結演算子 (CONCAT() など) を示します。

    ||、演算子は非標準の MySQL 拡張機能です。 MySQL 8.0.17 では、この演算子は非推奨です。将来のバージョンの MySQL ではサポートされなくなる予定です。 アプリケーションは、標準の SQLOR 演算子を使用するように調整する必要があります。 例外:PIPES_AS_CONCAT が有効な場合、||は文字列の連結を示すため、非推奨は適用されません。

  • XOR

    論理 XOR。 オペランドのいずれかがNULL である場合は、NULL を返します。 非NULL のオペランドでは、奇数のオペランドがゼロ以外の場合は1 に評価され、それ以外の場合は0 が返されます。

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

    a XOR b は、数学的に(a AND (NOT b)) OR ((NOT a) and b) に等しくなります。