MySQLの「=」や「<>」はNULLセーフではない。どういうことかと言うと、比較対象の値がNULLの場合、0または1ではなく、NULLが結果として戻り、ヒットしないということになる。
MySQLでは、以下のような構文でNULLセーフを実現している。構文については使用するRDBSによって異なるので注意
「=」のNULLセーフ: 値1 <=> 値2
「<>」のNULLセーフ: NOT 値1 <=> 値2
■参考サイト
MySQLの「=」や「<>」はNULLセーフではない。どういうことかと言うと、比較対象の値がNULLの場合、0または1ではなく、NULLが結果として戻り、ヒットしないということになる。
MySQLでは、以下のような構文でNULLセーフを実現している。構文については使用するRDBSによって異なるので注意
「=」のNULLセーフ: 値1 <=> 値2
「<>」のNULLセーフ: NOT 値1 <=> 値2
■参考サイト