MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
SQL では、すべての論理演算子は TRUE
、FALSE
、または NULL
(UNKNOWN
) に評価されます。 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
, !
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
が生成されています。
!
、演算子は非標準の MySQL 拡張機能です。 MySQL 8.0.17 では、この演算子は非推奨です。将来のバージョンの MySQL で削除される予定です。 アプリケーションは、標準の SQL NOT
演算子を使用するように調整する必要があります。
AND
, &&
論理 AND すべてのオペランドがゼロ以外で非 NULL
の場合は 1
に、1 つ以上のオペランドが 0
の場合は 0
に評価され、それ以外の場合は NULL
が返されます。
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
, ||
論理 OR。 両方のオペランドが非 NULL
であれば、オペランドのいずれかがゼロ以外である場合の結果は 1
、それ以外の場合は 0
になります。 NULL
オペランドが 1 つあれば、ほかのオペランドがゼロ以外である場合の結果は 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
論理 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)
に等しくなります。