Closed1

mysqlにて、`A is not TRUE`と`A != TRUE`の挙動は異なるか

Kazuhito NakayamaKazuhito Nakayama

A is not TRUEとA != TRUEの挙動は確かに異なります。

  1. A is not TRUE
    この表現は、AがTRUEでない場合(つまり、AがFALSEまたはNULLの場合)にTRUEを返します。
  2. A != TRUE
    この表現は、AがTRUEでない場合にTRUEを返しますが、AがNULLの場合は結果もNULLとなります(SQLの三値論理(TRUE、FALSE、UNKNOWN)に基づいています)。
    したがって、主な違いはAがNULLの場合の挙動です。
    A is not TRUEの方が、NULLを考慮した厳格な比較を提供します。
このスクラップは2023/09/14にクローズされました